Mock Version: 6.0 Mock Version: 6.0 Mock Version: 6.0 Mock Version: 6.0 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/openstack-ironic.spec'], chrootPath='/var/lib/mock/dlrn-centos10-master-uc-x86_64-5/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=0uid=1039gid=135user='mockbuild'unshare_net=TrueprintOutput=Falsenspawn_args=['--capability=cap_ipc_lock']) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/openstack-ironic.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False warning: source_date_epoch_from_changelog set but %changelog is missing Building target platforms: x86_64 Building for target x86_64 Wrote: /builddir/build/SRPMS/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.src.rpm RPM build warnings: source_date_epoch_from_changelog set but %changelog is missing Child return code was: 0 Mock Version: 6.0 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/openstack-ironic.spec'], chrootPath='/var/lib/mock/dlrn-centos10-master-uc-x86_64-5/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=0uid=1039gid=135user='mockbuild'unshare_net=TrueprintOutput=Falsenspawn_args=['--capability=cap_ipc_lock']) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/openstack-ironic.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False warning: source_date_epoch_from_changelog set but %changelog is missing Building target platforms: x86_64 Building for target x86_64 Wrote: /builddir/build/SRPMS/openstack-ironic-29.1.0-0.20250507225206.945f688.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.tFYut5 + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf ironic-29.1.0.dev82 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/ironic-29.1.0.dev82-0.20250507225206.945f688.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd ironic-29.1.0.dev82 + rm -rf /builddir/build/BUILD/ironic-29.1.0.dev82-SPECPARTS + /usr/bin/mkdir -p /builddir/build/BUILD/ironic-29.1.0.dev82-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.7YESew + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev82 + 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.dev82/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/ironic-29.1.0.dev82/.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.dev82/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250507225206.945f688.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.20250507225206.945f688.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.20250507225206.945f688.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.sTcyVd + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev82 + 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.dev82/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/ironic-29.1.0.dev82/.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.dev82/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250507225206.945f688.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.20250507225206.945f688.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.20250507225206.945f688.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.3FswSO + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev82 + 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.dev82/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/ironic-29.1.0.dev82/.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.dev82/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250507225206.945f688.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.00 seconds) congratulations :) (0.11 seconds) Handling tox from tox --print-deps-only: py312 Requirement satisfied: tox (installed: tox 4.21.2) Handling pbr>=6.0.0 from tox --print-deps-only: py312 Requirement satisfied: pbr>=6.0.0 (installed: pbr 6.0.0) Handling SQLAlchemy>=1.4.0 from tox --print-deps-only: py312 Requirement satisfied: SQLAlchemy>=1.4.0 (installed: SQLAlchemy 2.0.26) Handling alembic>=1.4.2 from tox --print-deps-only: py312 Requirement satisfied: alembic>=1.4.2 (installed: alembic 1.13.1) Handling automaton>=1.9.0 from tox --print-deps-only: py312 Requirement not satisfied: automaton>=1.9.0 Handling eventlet>=0.30.1 from tox --print-deps-only: py312 Requirement satisfied: eventlet>=0.30.1 (installed: eventlet 0.36.1) Handling WebOb>=1.7.1 from tox --print-deps-only: py312 Requirement not satisfied: WebOb>=1.7.1 Handling keystoneauth1>=4.2.0 from tox --print-deps-only: py312 Requirement not satisfied: keystoneauth1>=4.2.0 Handling stevedore>=1.29.0 from tox --print-deps-only: py312 Requirement satisfied: stevedore>=1.29.0 (installed: stevedore 5.4.1) Handling oslo.concurrency>=4.2.0 from tox --print-deps-only: py312 Requirement not satisfied: oslo.concurrency>=4.2.0 Handling oslo.config>=6.8.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.config>=6.8.0 (installed: oslo.config 9.7.1) Handling oslo.context>=2.22.0 from tox --print-deps-only: py312 Requirement not satisfied: oslo.context>=2.22.0 Handling oslo.db>=9.1.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.db>=9.1.0 (installed: oslo.db 17.2.1) Handling oslo.rootwrap>=5.8.0 from tox --print-deps-only: py312 Requirement not satisfied: oslo.rootwrap>=5.8.0 Handling oslo.log>=4.3.0 from tox --print-deps-only: py312 Requirement not satisfied: oslo.log>=4.3.0 Handling oslo.middleware>=3.31.0 from tox --print-deps-only: py312 Requirement not satisfied: oslo.middleware>=3.31.0 Handling oslo.policy>=4.5.0 from tox --print-deps-only: py312 Requirement not satisfied: oslo.policy>=4.5.0 Handling oslo.serialization>=2.25.0 from tox --print-deps-only: py312 Requirement not satisfied: oslo.serialization>=2.25.0 Handling oslo.service>=1.24.0 from tox --print-deps-only: py312 Requirement not satisfied: oslo.service>=1.24.0 Handling oslo.upgradecheck>=1.3.0 from tox --print-deps-only: py312 Requirement not satisfied: oslo.upgradecheck>=1.3.0 Handling oslo.utils>=8.0.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.utils>=8.0.0 (installed: oslo.utils 8.0.0) Handling osprofiler>=1.5.0 from tox --print-deps-only: py312 Requirement not satisfied: osprofiler>=1.5.0 Handling os-traits>=0.4.0 from tox --print-deps-only: py312 Requirement not satisfied: os-traits>=0.4.0 Handling pecan>=1.0.0 from tox --print-deps-only: py312 Requirement not satisfied: pecan>=1.0.0 Handling pycdlib>=1.11.0 from tox --print-deps-only: py312 Requirement not satisfied: pycdlib>=1.11.0 Handling requests>=2.18.0 from tox --print-deps-only: py312 Requirement satisfied: requests>=2.18.0 (installed: requests 2.32.3) Handling rfc3986>=1.2.0 from tox --print-deps-only: py312 Requirement satisfied: rfc3986>=1.2.0 (installed: rfc3986 1.5.0) Handling jsonpatch>=1.16 from tox --print-deps-only: py312 Requirement not satisfied: jsonpatch>=1.16 Handling Jinja2>=3.0.0 from tox --print-deps-only: py312 Requirement satisfied: Jinja2>=3.0.0 (installed: Jinja2 3.1.5) Handling keystonemiddleware>=9.5.0 from tox --print-deps-only: py312 Requirement not satisfied: keystonemiddleware>=9.5.0 Handling oslo.messaging>=14.1.0 from tox --print-deps-only: py312 Requirement not satisfied: oslo.messaging>=14.1.0 Handling tenacity>=6.3.1 from tox --print-deps-only: py312 Requirement not satisfied: tenacity>=6.3.1 Handling oslo.versionedobjects>=1.31.2 from tox --print-deps-only: py312 Requirement not satisfied: oslo.versionedobjects>=1.31.2 Handling jsonschema>=4.0.0 from tox --print-deps-only: py312 Requirement not satisfied: jsonschema>=4.0.0 Handling psutil>=3.2.2 from tox --print-deps-only: py312 Requirement satisfied: psutil>=3.2.2 (installed: psutil 5.9.8) Handling futurist>=1.2.0 from tox --print-deps-only: py312 Requirement not satisfied: futurist>=1.2.0 Handling tooz>=2.7.0 from tox --print-deps-only: py312 Requirement not satisfied: tooz>=2.7.0 Handling openstacksdk>=0.99.0 from tox --print-deps-only: py312 Requirement not satisfied: openstacksdk>=0.99.0 Handling sushy>=4.8.0 from tox --print-deps-only: py312 Requirement not satisfied: sushy>=4.8.0 Handling construct>=2.9.39 from tox --print-deps-only: py312 Requirement not satisfied: construct>=2.9.39 Handling netaddr from tox --print-deps-only: py312 Requirement satisfied: netaddr (installed: netaddr 1.3.0) Handling microversion-parse>=1.0.1 from tox --print-deps-only: py312 Requirement not satisfied: microversion-parse>=1.0.1 Handling zeroconf>=0.24.0 from tox --print-deps-only: py312 Requirement not satisfied: zeroconf>=0.24.0 Handling os-service-types>=1.7.0 from tox --print-deps-only: py312 Requirement not satisfied: os-service-types>=1.7.0 Handling bcrypt>=3.1.3 from tox --print-deps-only: py312 Requirement not satisfied: bcrypt>=3.1.3 Handling websockify>=0.9.0 from tox --print-deps-only: py312 Requirement not satisfied: websockify>=0.9.0 Handling PyYAML from tox --print-deps-only: py312 Requirement satisfied: PyYAML (installed: PyYAML 6.0.1) Handling coverage>=4.0 from tox --print-deps-only: py312 Requirement not satisfied: coverage>=4.0 Handling ddt>=1.2.1 from tox --print-deps-only: py312 Requirement not satisfied: ddt>=1.2.1 Handling fixtures>=3.0.0 from tox --print-deps-only: py312 Requirement satisfied: fixtures>=3.0.0 (installed: fixtures 4.2.2) Handling PyMySQL>=0.8.0 from tox --print-deps-only: py312 Requirement satisfied: PyMySQL>=0.8.0 (installed: PyMySQL 1.1.1) Handling oslo.reports>=1.18.0 from tox --print-deps-only: py312 Requirement not satisfied: oslo.reports>=1.18.0 Handling oslotest>=3.2.0 from tox --print-deps-only: py312 Requirement satisfied: oslotest>=3.2.0 (installed: oslotest 5.0.0) 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.dev82/ironic-29.1.0.dev82.dist-info' Handling pbr >=6.0.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: pbr >=6.0.0 (installed: pbr 6.0.0) Handling SQLAlchemy >=1.4.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: SQLAlchemy >=1.4.0 (installed: SQLAlchemy 2.0.26) Handling alembic >=1.4.2 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: alembic >=1.4.2 (installed: alembic 1.13.1) Handling automaton >=1.9.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: automaton >=1.9.0 Handling eventlet >=0.30.1 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: eventlet >=0.30.1 (installed: eventlet 0.36.1) Handling WebOb >=1.7.1 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: WebOb >=1.7.1 Handling keystoneauth1 >=4.2.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: keystoneauth1 >=4.2.0 Handling stevedore >=1.29.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: stevedore >=1.29.0 (installed: stevedore 5.4.1) Handling oslo.concurrency >=4.2.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: oslo.concurrency >=4.2.0 Handling oslo.config >=6.8.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.config >=6.8.0 (installed: oslo.config 9.7.1) Handling oslo.context >=2.22.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: oslo.context >=2.22.0 Handling oslo.db >=9.1.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.db >=9.1.0 (installed: oslo.db 17.2.1) Handling oslo.rootwrap >=5.8.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: oslo.rootwrap >=5.8.0 Handling oslo.log >=4.3.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: oslo.log >=4.3.0 Handling oslo.middleware >=3.31.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: oslo.middleware >=3.31.0 Handling oslo.policy >=4.5.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: oslo.policy >=4.5.0 Handling oslo.serialization >=2.25.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: oslo.serialization >=2.25.0 Handling oslo.service >=1.24.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: oslo.service >=1.24.0 Handling oslo.upgradecheck >=1.3.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: oslo.upgradecheck >=1.3.0 Handling oslo.utils >=8.0.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.utils >=8.0.0 (installed: oslo.utils 8.0.0) Handling osprofiler >=1.5.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: osprofiler >=1.5.0 Handling os-traits >=0.4.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: os-traits >=0.4.0 Handling pecan >=1.0.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: pecan >=1.0.0 Handling pycdlib >=1.11.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: pycdlib >=1.11.0 Handling requests >=2.18.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: requests >=2.18.0 (installed: requests 2.32.3) Handling rfc3986 >=1.2.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: rfc3986 >=1.2.0 (installed: rfc3986 1.5.0) Handling jsonpatch >=1.16 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: jsonpatch >=1.16 Handling Jinja2 >=3.0.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: Jinja2 >=3.0.0 (installed: Jinja2 3.1.5) Handling keystonemiddleware >=9.5.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: keystonemiddleware >=9.5.0 Handling oslo.messaging >=14.1.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: oslo.messaging >=14.1.0 Handling tenacity >=6.3.1 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: tenacity >=6.3.1 Handling oslo.versionedobjects >=1.31.2 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: oslo.versionedobjects >=1.31.2 Handling jsonschema >=4.0.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: jsonschema >=4.0.0 Handling psutil >=3.2.2 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: psutil >=3.2.2 (installed: psutil 5.9.8) Handling futurist >=1.2.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: futurist >=1.2.0 Handling tooz >=2.7.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: tooz >=2.7.0 Handling openstacksdk >=0.99.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: openstacksdk >=0.99.0 Handling sushy >=4.8.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: sushy >=4.8.0 Handling construct >=2.9.39 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: construct >=2.9.39 Handling netaddr from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: netaddr (installed: netaddr 1.3.0) Handling microversion-parse >=1.0.1 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: microversion-parse >=1.0.1 Handling zeroconf >=0.24.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: zeroconf >=0.24.0 Handling os-service-types >=1.7.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: os-service-types >=1.7.0 Handling bcrypt >=3.1.3 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: bcrypt >=3.1.3 Handling websockify >=0.9.0 from hook generated metadata: Requires-Dist (ironic) Requirement not satisfied: websockify >=0.9.0 Handling PyYAML from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: PyYAML (installed: PyYAML 6.0.1) Handling virtualbmc >=1.4.0 ; extra == 'devstack' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: virtualbmc >=1.4.0 ; extra == 'devstack' Handling oslo.reports >=1.18.0 ; extra == 'guru_meditation_reports' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: oslo.reports >=1.18.0 ; extra == 'guru_meditation_reports' Handling oslo.i18n >=3.20.0 ; extra == 'i18n' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: oslo.i18n >=3.20.0 ; extra == 'i18n' Handling coverage >=4.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: coverage >=4.0 ; extra == 'test' Handling ddt >=1.2.1 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: ddt >=1.2.1 ; extra == 'test' Handling fixtures >=3.0.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: fixtures >=3.0.0 ; extra == 'test' Handling PyMySQL >=0.8.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: PyMySQL >=0.8.0 ; extra == 'test' Handling oslo.reports >=1.18.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: oslo.reports >=1.18.0 ; extra == 'test' Handling oslotest >=3.2.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: oslotest >=3.2.0 ; extra == 'test' Handling stestr >=2.0.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: stestr >=2.0.0 ; extra == 'test' Handling testtools >=2.5.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: testtools >=2.5.0 ; extra == 'test' Handling WebTest >=2.0.27 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: WebTest >=2.0.27 ; extra == 'test' Handling pysnmp-lextudio >=5.0.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: pysnmp-lextudio >=5.0.0 ; extra == 'test' Handling pyasn1 >=0.5.1 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: pyasn1 >=0.5.1 ; extra == 'test' Handling pyasn1-modules >=0.3.0 ; extra == 'test' from hook generated metadata: Requires-Dist (ironic) Ignoring alien requirement: pyasn1-modules >=0.3.0 ; extra == 'test' + cat /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64-pyproject-buildrequires + rm -rfv ironic-29.1.0.dev82.dist-info/ removed 'ironic-29.1.0.dev82.dist-info/AUTHORS' removed 'ironic-29.1.0.dev82.dist-info/LICENSE' removed 'ironic-29.1.0.dev82.dist-info/METADATA' removed 'ironic-29.1.0.dev82.dist-info/entry_points.txt' removed 'ironic-29.1.0.dev82.dist-info/pbr.json' removed 'ironic-29.1.0.dev82.dist-info/top_level.txt' removed directory 'ironic-29.1.0.dev82.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/openstack-ironic-29.1.0-0.20250507225206.945f688.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.21ESfg + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev82 + 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.dev82/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/ironic-29.1.0.dev82/.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.dev82/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250507225206.945f688.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.03 seconds) congratulations :) (0.23 seconds) Handling tox from tox --print-deps-only: py312 Requirement satisfied: tox (installed: tox 4.21.2) Handling pbr>=6.0.0 from tox --print-deps-only: py312 Requirement satisfied: pbr>=6.0.0 (installed: pbr 6.0.0) Handling SQLAlchemy>=1.4.0 from tox --print-deps-only: py312 Requirement satisfied: SQLAlchemy>=1.4.0 (installed: SQLAlchemy 2.0.26) Handling alembic>=1.4.2 from tox --print-deps-only: py312 Requirement satisfied: alembic>=1.4.2 (installed: alembic 1.13.1) Handling automaton>=1.9.0 from tox --print-deps-only: py312 Requirement satisfied: automaton>=1.9.0 (installed: automaton 3.2.0) Handling eventlet>=0.30.1 from tox --print-deps-only: py312 Requirement satisfied: eventlet>=0.30.1 (installed: eventlet 0.36.1) Handling WebOb>=1.7.1 from tox --print-deps-only: py312 Requirement satisfied: WebOb>=1.7.1 (installed: WebOb 1.8.9) Handling keystoneauth1>=4.2.0 from tox --print-deps-only: py312 Requirement satisfied: keystoneauth1>=4.2.0 (installed: keystoneauth1 5.10.0) Handling stevedore>=1.29.0 from tox --print-deps-only: py312 Requirement satisfied: stevedore>=1.29.0 (installed: stevedore 5.4.1) Handling oslo.concurrency>=4.2.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.concurrency>=4.2.0 (installed: oslo.concurrency 7.1.0) Handling oslo.config>=6.8.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.config>=6.8.0 (installed: oslo.config 9.7.1) Handling oslo.context>=2.22.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.context>=2.22.0 (installed: oslo.context 5.7.1) Handling oslo.db>=9.1.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.db>=9.1.0 (installed: oslo.db 17.2.1) Handling oslo.rootwrap>=5.8.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.rootwrap>=5.8.0 (installed: oslo.rootwrap 7.5.1) Handling oslo.log>=4.3.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.log>=4.3.0 (installed: oslo.log 7.1.0) Handling oslo.middleware>=3.31.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.middleware>=3.31.0 (installed: oslo.middleware 6.3.1) 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.4.0) Handling pecan>=1.0.0 from tox --print-deps-only: py312 Requirement satisfied: pecan>=1.0.0 (installed: pecan 1.5.1) Handling pycdlib>=1.11.0 from tox --print-deps-only: py312 Requirement satisfied: pycdlib>=1.11.0 (installed: pycdlib 1.14.0) Handling requests>=2.18.0 from tox --print-deps-only: py312 Requirement satisfied: requests>=2.18.0 (installed: requests 2.32.3) Handling rfc3986>=1.2.0 from tox --print-deps-only: py312 Requirement satisfied: rfc3986>=1.2.0 (installed: rfc3986 1.5.0) Handling jsonpatch>=1.16 from tox --print-deps-only: py312 Requirement satisfied: jsonpatch>=1.16 (installed: jsonpatch 1.33) Handling Jinja2>=3.0.0 from tox --print-deps-only: py312 Requirement satisfied: Jinja2>=3.0.0 (installed: Jinja2 3.1.5) Handling keystonemiddleware>=9.5.0 from tox --print-deps-only: py312 Requirement satisfied: keystonemiddleware>=9.5.0 (installed: keystonemiddleware 10.9.0) Handling oslo.messaging>=14.1.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.messaging>=14.1.0 (installed: oslo.messaging 16.1.0) Handling tenacity>=6.3.1 from tox --print-deps-only: py312 Requirement satisfied: tenacity>=6.3.1 (installed: tenacity 8.2.3) Handling oslo.versionedobjects>=1.31.2 from tox --print-deps-only: py312 Requirement satisfied: oslo.versionedobjects>=1.31.2 (installed: oslo.versionedobjects 3.6.0) Handling jsonschema>=4.0.0 from tox --print-deps-only: py312 Requirement satisfied: jsonschema>=4.0.0 (installed: jsonschema 4.19.1) Handling psutil>=3.2.2 from tox --print-deps-only: py312 Requirement satisfied: psutil>=3.2.2 (installed: psutil 5.9.8) Handling futurist>=1.2.0 from tox --print-deps-only: py312 Requirement satisfied: futurist>=1.2.0 (installed: futurist 3.1.0) 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.4.0) Handling sushy>=4.8.0 from tox --print-deps-only: py312 Requirement satisfied: sushy>=4.8.0 (installed: sushy 5.5.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.0) 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.dev82/ironic-29.1.0.dev82.dist-info' Handling pbr >=6.0.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: pbr >=6.0.0 (installed: pbr 6.0.0) Handling SQLAlchemy >=1.4.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: SQLAlchemy >=1.4.0 (installed: SQLAlchemy 2.0.26) Handling alembic >=1.4.2 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: alembic >=1.4.2 (installed: alembic 1.13.1) Handling automaton >=1.9.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: automaton >=1.9.0 (installed: automaton 3.2.0) Handling eventlet >=0.30.1 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: eventlet >=0.30.1 (installed: eventlet 0.36.1) Handling WebOb >=1.7.1 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: WebOb >=1.7.1 (installed: WebOb 1.8.9) Handling keystoneauth1 >=4.2.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: keystoneauth1 >=4.2.0 (installed: keystoneauth1 5.10.0) Handling stevedore >=1.29.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: stevedore >=1.29.0 (installed: stevedore 5.4.1) Handling oslo.concurrency >=4.2.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.concurrency >=4.2.0 (installed: oslo.concurrency 7.1.0) Handling oslo.config >=6.8.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.config >=6.8.0 (installed: oslo.config 9.7.1) Handling oslo.context >=2.22.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.context >=2.22.0 (installed: oslo.context 5.7.1) Handling oslo.db >=9.1.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.db >=9.1.0 (installed: oslo.db 17.2.1) Handling oslo.rootwrap >=5.8.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.rootwrap >=5.8.0 (installed: oslo.rootwrap 7.5.1) Handling oslo.log >=4.3.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.log >=4.3.0 (installed: oslo.log 7.1.0) Handling oslo.middleware >=3.31.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.middleware >=3.31.0 (installed: oslo.middleware 6.3.1) 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.4.0) Handling pecan >=1.0.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: pecan >=1.0.0 (installed: pecan 1.5.1) Handling pycdlib >=1.11.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: pycdlib >=1.11.0 (installed: pycdlib 1.14.0) Handling requests >=2.18.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: requests >=2.18.0 (installed: requests 2.32.3) Handling rfc3986 >=1.2.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: rfc3986 >=1.2.0 (installed: rfc3986 1.5.0) Handling jsonpatch >=1.16 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: jsonpatch >=1.16 (installed: jsonpatch 1.33) Handling Jinja2 >=3.0.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: Jinja2 >=3.0.0 (installed: Jinja2 3.1.5) Handling keystonemiddleware >=9.5.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: keystonemiddleware >=9.5.0 (installed: keystonemiddleware 10.9.0) Handling oslo.messaging >=14.1.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.messaging >=14.1.0 (installed: oslo.messaging 16.1.0) Handling tenacity >=6.3.1 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: tenacity >=6.3.1 (installed: tenacity 8.2.3) Handling oslo.versionedobjects >=1.31.2 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.versionedobjects >=1.31.2 (installed: oslo.versionedobjects 3.6.0) Handling jsonschema >=4.0.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: jsonschema >=4.0.0 (installed: jsonschema 4.19.1) Handling psutil >=3.2.2 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: psutil >=3.2.2 (installed: psutil 5.9.8) Handling futurist >=1.2.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: futurist >=1.2.0 (installed: futurist 3.1.0) 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.4.0) Handling sushy >=4.8.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: sushy >=4.8.0 (installed: sushy 5.5.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.20250507225206.945f688.el10.x86_64-pyproject-buildrequires + rm -rfv ironic-29.1.0.dev82.dist-info/ removed 'ironic-29.1.0.dev82.dist-info/AUTHORS' removed 'ironic-29.1.0.dev82.dist-info/LICENSE' removed 'ironic-29.1.0.dev82.dist-info/METADATA' removed 'ironic-29.1.0.dev82.dist-info/top_level.txt' removed 'ironic-29.1.0.dev82.dist-info/pbr.json' removed 'ironic-29.1.0.dev82.dist-info/entry_points.txt' removed directory 'ironic-29.1.0.dev82.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/openstack-ironic-29.1.0-0.20250507225206.945f688.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.Vk7VxN + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev82 + 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.dev82/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/ironic-29.1.0.dev82/.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.dev82/pyproject-wheeldir --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250507225206.945f688.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.03 seconds) congratulations :) (0.18 seconds) Handling tox from tox --print-deps-only: py312 Requirement satisfied: tox (installed: tox 4.21.2) Handling pbr>=6.0.0 from tox --print-deps-only: py312 Requirement satisfied: pbr>=6.0.0 (installed: pbr 6.0.0) Handling SQLAlchemy>=1.4.0 from tox --print-deps-only: py312 Requirement satisfied: SQLAlchemy>=1.4.0 (installed: SQLAlchemy 2.0.26) Handling alembic>=1.4.2 from tox --print-deps-only: py312 Requirement satisfied: alembic>=1.4.2 (installed: alembic 1.13.1) Handling automaton>=1.9.0 from tox --print-deps-only: py312 Requirement satisfied: automaton>=1.9.0 (installed: automaton 3.2.0) Handling eventlet>=0.30.1 from tox --print-deps-only: py312 Requirement satisfied: eventlet>=0.30.1 (installed: eventlet 0.36.1) Handling WebOb>=1.7.1 from tox --print-deps-only: py312 Requirement satisfied: WebOb>=1.7.1 (installed: WebOb 1.8.9) Handling keystoneauth1>=4.2.0 from tox --print-deps-only: py312 Requirement satisfied: keystoneauth1>=4.2.0 (installed: keystoneauth1 5.10.0) Handling stevedore>=1.29.0 from tox --print-deps-only: py312 Requirement satisfied: stevedore>=1.29.0 (installed: stevedore 5.4.1) Handling oslo.concurrency>=4.2.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.concurrency>=4.2.0 (installed: oslo.concurrency 7.1.0) Handling oslo.config>=6.8.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.config>=6.8.0 (installed: oslo.config 9.7.1) Handling oslo.context>=2.22.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.context>=2.22.0 (installed: oslo.context 5.7.1) Handling oslo.db>=9.1.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.db>=9.1.0 (installed: oslo.db 17.2.1) Handling oslo.rootwrap>=5.8.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.rootwrap>=5.8.0 (installed: oslo.rootwrap 7.5.1) Handling oslo.log>=4.3.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.log>=4.3.0 (installed: oslo.log 7.1.0) Handling oslo.middleware>=3.31.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.middleware>=3.31.0 (installed: oslo.middleware 6.3.1) 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.4.0) Handling pecan>=1.0.0 from tox --print-deps-only: py312 Requirement satisfied: pecan>=1.0.0 (installed: pecan 1.5.1) Handling pycdlib>=1.11.0 from tox --print-deps-only: py312 Requirement satisfied: pycdlib>=1.11.0 (installed: pycdlib 1.14.0) Handling requests>=2.18.0 from tox --print-deps-only: py312 Requirement satisfied: requests>=2.18.0 (installed: requests 2.32.3) Handling rfc3986>=1.2.0 from tox --print-deps-only: py312 Requirement satisfied: rfc3986>=1.2.0 (installed: rfc3986 1.5.0) Handling jsonpatch>=1.16 from tox --print-deps-only: py312 Requirement satisfied: jsonpatch>=1.16 (installed: jsonpatch 1.33) Handling Jinja2>=3.0.0 from tox --print-deps-only: py312 Requirement satisfied: Jinja2>=3.0.0 (installed: Jinja2 3.1.5) Handling keystonemiddleware>=9.5.0 from tox --print-deps-only: py312 Requirement satisfied: keystonemiddleware>=9.5.0 (installed: keystonemiddleware 10.9.0) Handling oslo.messaging>=14.1.0 from tox --print-deps-only: py312 Requirement satisfied: oslo.messaging>=14.1.0 (installed: oslo.messaging 16.1.0) Handling tenacity>=6.3.1 from tox --print-deps-only: py312 Requirement satisfied: tenacity>=6.3.1 (installed: tenacity 8.2.3) Handling oslo.versionedobjects>=1.31.2 from tox --print-deps-only: py312 Requirement satisfied: oslo.versionedobjects>=1.31.2 (installed: oslo.versionedobjects 3.6.0) Handling jsonschema>=4.0.0 from tox --print-deps-only: py312 Requirement satisfied: jsonschema>=4.0.0 (installed: jsonschema 4.19.1) Handling psutil>=3.2.2 from tox --print-deps-only: py312 Requirement satisfied: psutil>=3.2.2 (installed: psutil 5.9.8) Handling futurist>=1.2.0 from tox --print-deps-only: py312 Requirement satisfied: futurist>=1.2.0 (installed: futurist 3.1.0) 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.4.0) Handling sushy>=4.8.0 from tox --print-deps-only: py312 Requirement satisfied: sushy>=4.8.0 (installed: sushy 5.5.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.0) 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.dev82/ironic-29.1.0.dev82.dist-info' Handling pbr >=6.0.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: pbr >=6.0.0 (installed: pbr 6.0.0) Handling SQLAlchemy >=1.4.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: SQLAlchemy >=1.4.0 (installed: SQLAlchemy 2.0.26) Handling alembic >=1.4.2 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: alembic >=1.4.2 (installed: alembic 1.13.1) Handling automaton >=1.9.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: automaton >=1.9.0 (installed: automaton 3.2.0) Handling eventlet >=0.30.1 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: eventlet >=0.30.1 (installed: eventlet 0.36.1) Handling WebOb >=1.7.1 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: WebOb >=1.7.1 (installed: WebOb 1.8.9) Handling keystoneauth1 >=4.2.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: keystoneauth1 >=4.2.0 (installed: keystoneauth1 5.10.0) Handling stevedore >=1.29.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: stevedore >=1.29.0 (installed: stevedore 5.4.1) Handling oslo.concurrency >=4.2.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.concurrency >=4.2.0 (installed: oslo.concurrency 7.1.0) Handling oslo.config >=6.8.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.config >=6.8.0 (installed: oslo.config 9.7.1) Handling oslo.context >=2.22.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.context >=2.22.0 (installed: oslo.context 5.7.1) Handling oslo.db >=9.1.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.db >=9.1.0 (installed: oslo.db 17.2.1) Handling oslo.rootwrap >=5.8.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.rootwrap >=5.8.0 (installed: oslo.rootwrap 7.5.1) Handling oslo.log >=4.3.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.log >=4.3.0 (installed: oslo.log 7.1.0) Handling oslo.middleware >=3.31.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.middleware >=3.31.0 (installed: oslo.middleware 6.3.1) 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.4.0) Handling pecan >=1.0.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: pecan >=1.0.0 (installed: pecan 1.5.1) Handling pycdlib >=1.11.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: pycdlib >=1.11.0 (installed: pycdlib 1.14.0) Handling requests >=2.18.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: requests >=2.18.0 (installed: requests 2.32.3) Handling rfc3986 >=1.2.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: rfc3986 >=1.2.0 (installed: rfc3986 1.5.0) Handling jsonpatch >=1.16 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: jsonpatch >=1.16 (installed: jsonpatch 1.33) Handling Jinja2 >=3.0.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: Jinja2 >=3.0.0 (installed: Jinja2 3.1.5) Handling keystonemiddleware >=9.5.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: keystonemiddleware >=9.5.0 (installed: keystonemiddleware 10.9.0) Handling oslo.messaging >=14.1.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.messaging >=14.1.0 (installed: oslo.messaging 16.1.0) Handling tenacity >=6.3.1 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: tenacity >=6.3.1 (installed: tenacity 8.2.3) Handling oslo.versionedobjects >=1.31.2 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: oslo.versionedobjects >=1.31.2 (installed: oslo.versionedobjects 3.6.0) Handling jsonschema >=4.0.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: jsonschema >=4.0.0 (installed: jsonschema 4.19.1) Handling psutil >=3.2.2 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: psutil >=3.2.2 (installed: psutil 5.9.8) Handling futurist >=1.2.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: futurist >=1.2.0 (installed: futurist 3.1.0) 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.4.0) Handling sushy >=4.8.0 from hook generated metadata: Requires-Dist (ironic) Requirement satisfied: sushy >=4.8.0 (installed: sushy 5.5.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.20250507225206.945f688.el10.x86_64-pyproject-buildrequires + rm -rfv ironic-29.1.0.dev82.dist-info/ removed 'ironic-29.1.0.dev82.dist-info/AUTHORS' removed 'ironic-29.1.0.dev82.dist-info/LICENSE' removed 'ironic-29.1.0.dev82.dist-info/METADATA' removed 'ironic-29.1.0.dev82.dist-info/entry_points.txt' removed 'ironic-29.1.0.dev82.dist-info/pbr.json' removed 'ironic-29.1.0.dev82.dist-info/top_level.txt' removed directory 'ironic-29.1.0.dev82.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.kpf6VV + umask 022 + cd /builddir/build/BUILD + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd ironic-29.1.0.dev82 + mkdir -p /builddir/build/BUILD/ironic-29.1.0.dev82/.pyproject-builddir + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + VALAFLAGS=-g + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + LT_SYS_LIBRARY_PATH=/usr/lib64: + CC=gcc + CXX=g++ + TMPDIR=/builddir/build/BUILD/ironic-29.1.0.dev82/.pyproject-builddir + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_wheel.py /builddir/build/BUILD/ironic-29.1.0.dev82/pyproject-wheeldir Processing /builddir/build/BUILD/ironic-29.1.0.dev82 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.dev82/.pyproject-builddir/pip-modern-metadata-nxw6bxxm/ironic.egg-info writing /builddir/build/BUILD/ironic-29.1.0.dev82/.pyproject-builddir/pip-modern-metadata-nxw6bxxm/ironic.egg-info/PKG-INFO writing dependency_links to /builddir/build/BUILD/ironic-29.1.0.dev82/.pyproject-builddir/pip-modern-metadata-nxw6bxxm/ironic.egg-info/dependency_links.txt writing entry points to /builddir/build/BUILD/ironic-29.1.0.dev82/.pyproject-builddir/pip-modern-metadata-nxw6bxxm/ironic.egg-info/entry_points.txt writing requirements to /builddir/build/BUILD/ironic-29.1.0.dev82/.pyproject-builddir/pip-modern-metadata-nxw6bxxm/ironic.egg-info/requires.txt writing top-level names to /builddir/build/BUILD/ironic-29.1.0.dev82/.pyproject-builddir/pip-modern-metadata-nxw6bxxm/ironic.egg-info/top_level.txt writing pbr to /builddir/build/BUILD/ironic-29.1.0.dev82/.pyproject-builddir/pip-modern-metadata-nxw6bxxm/ironic.egg-info/pbr.json [pbr] Processing SOURCES.txt writing manifest file '/builddir/build/BUILD/ironic-29.1.0.dev82/.pyproject-builddir/pip-modern-metadata-nxw6bxxm/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.dev82/.pyproject-builddir/pip-modern-metadata-nxw6bxxm/ironic.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/ironic-29.1.0.dev82/.pyproject-builddir/pip-modern-metadata-nxw6bxxm/ironic-29.1.0.dev82.dist-info' Preparing metadata (pyproject.toml): finished with status 'done' Building wheels for collected packages: ironic Building wheel for ironic (pyproject.toml): started Running command Building wheel for ironic (pyproject.toml) WARNING setuptools_scm._integration.setuptools pyproject.toml does not contain a tool.setuptools_scm section /usr/lib/python3.12/site-packages/setuptools/command/develop.py:39: EasyInstallDeprecationWarning: easy_install command is deprecated. !! ******************************************************************************** Please avoid running ``setup.py`` and ``easy_install``. Instead, use pypa/build, pypa/installer or other standards-based tools. See https://github.com/pypa/setuptools/issues/917 for details. ******************************************************************************** !! easy_install.initialize_options(self) running bdist_wheel running build running build_py creating build creating build/lib creating build/lib/ironic creating build/lib/ironic/tests creating build/lib/ironic/tests/unit creating build/lib/ironic/tests/unit/drivers creating build/lib/ironic/tests/unit/drivers/modules creating build/lib/ironic/tests/unit/drivers/modules/storage copying ironic/tests/unit/drivers/modules/storage/test_external.py -> build/lib/ironic/tests/unit/drivers/modules/storage copying ironic/tests/unit/drivers/modules/storage/test_cinder.py -> build/lib/ironic/tests/unit/drivers/modules/storage copying ironic/tests/unit/drivers/modules/storage/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/storage creating build/lib/ironic/drivers creating build/lib/ironic/drivers/modules 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/common creating build/lib/ironic/common/json_rpc copying ironic/common/json_rpc/wsgi.py -> 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/tests/unit/db 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/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/console 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/tests/unit/drivers/modules/inspector copying ironic/tests/unit/drivers/modules/inspector/test_interface.py -> build/lib/ironic/tests/unit/drivers/modules/inspector copying ironic/tests/unit/drivers/modules/inspector/test_client.py -> build/lib/ironic/tests/unit/drivers/modules/inspector copying ironic/tests/unit/drivers/modules/inspector/test_agent.py -> build/lib/ironic/tests/unit/drivers/modules/inspector copying ironic/tests/unit/drivers/modules/inspector/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/inspector 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/base.py -> build/lib/ironic/tests copying ironic/tests/__init__.py -> build/lib/ironic/tests 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/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 copying ironic/drivers/utils.py -> build/lib/ironic/drivers copying ironic/drivers/snmp.py -> build/lib/ironic/drivers copying ironic/drivers/redfish.py -> build/lib/ironic/drivers copying ironic/drivers/irmc.py -> build/lib/ironic/drivers copying ironic/drivers/ipmi.py -> build/lib/ironic/drivers copying ironic/drivers/intel_ipmi.py -> build/lib/ironic/drivers copying ironic/drivers/ilo.py -> build/lib/ironic/drivers copying ironic/drivers/hardware_type.py -> build/lib/ironic/drivers copying ironic/drivers/generic.py -> build/lib/ironic/drivers copying ironic/drivers/fake_hardware.py -> build/lib/ironic/drivers copying ironic/drivers/drac.py -> build/lib/ironic/drivers copying ironic/drivers/base.py -> build/lib/ironic/drivers copying ironic/drivers/__init__.py -> build/lib/ironic/drivers creating build/lib/ironic/drivers/modules/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 creating build/lib/ironic/tests/unit/api 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 copying ironic/drivers/modules/snmp.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/ramdisk.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/pxe_base.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/pxe.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/noop_mgmt.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/noop.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/ipxe.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/ipmitool.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/inspect_utils.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/image_utils.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/image_cache.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/graphical_console.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/fake.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/deploy_utils.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/console_utils.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/boot_mode_utils.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/agent_power.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/agent_client.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/agent_base.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/agent.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/__init__.py -> build/lib/ironic/drivers/modules creating build/lib/ironic/wsgi copying ironic/wsgi/__init__.py -> build/lib/ironic/wsgi creating build/lib/ironic/hacking copying ironic/hacking/checks.py -> build/lib/ironic/hacking copying ironic/hacking/__init__.py -> build/lib/ironic/hacking creating build/lib/ironic/tests/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/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 copying ironic/version.py -> build/lib/ironic copying ironic/__init__.py -> build/lib/ironic 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 copying ironic/common/wsgi_service.py -> build/lib/ironic/common copying ironic/common/vnc.py -> build/lib/ironic/common copying ironic/common/utils.py -> build/lib/ironic/common copying ironic/common/swift.py -> build/lib/ironic/common copying ironic/common/states.py -> build/lib/ironic/common copying ironic/common/service.py -> build/lib/ironic/common copying ironic/common/rpc_service.py -> build/lib/ironic/common copying ironic/common/rpc.py -> build/lib/ironic/common copying ironic/common/release_mappings.py -> build/lib/ironic/common copying ironic/common/raid.py -> build/lib/ironic/common copying ironic/common/qemu_img.py -> build/lib/ironic/common copying ironic/common/pxe_utils.py -> build/lib/ironic/common copying ironic/common/profiler.py -> build/lib/ironic/common copying ironic/common/policy.py -> build/lib/ironic/common copying ironic/common/oci_registry.py -> build/lib/ironic/common copying ironic/common/nova.py -> build/lib/ironic/common copying ironic/common/neutron.py -> build/lib/ironic/common copying ironic/common/network.py -> build/lib/ironic/common copying ironic/common/molds.py -> build/lib/ironic/common copying ironic/common/metrics_utils.py -> build/lib/ironic/common copying ironic/common/metrics_statsd.py -> build/lib/ironic/common copying ironic/common/metrics_collector.py -> build/lib/ironic/common copying ironic/common/metrics.py -> build/lib/ironic/common copying ironic/common/mdns.py -> build/lib/ironic/common copying ironic/common/lessee_sources.py -> build/lib/ironic/common copying ironic/common/kickstart_utils.py -> build/lib/ironic/common copying ironic/common/keystone.py -> build/lib/ironic/common copying ironic/common/indicator_states.py -> build/lib/ironic/common copying ironic/common/images.py -> build/lib/ironic/common copying ironic/common/image_service.py -> build/lib/ironic/common copying ironic/common/image_publisher.py -> build/lib/ironic/common copying ironic/common/i18n.py -> build/lib/ironic/common copying ironic/common/hash_ring.py -> build/lib/ironic/common copying ironic/common/fsm.py -> build/lib/ironic/common copying ironic/common/faults.py -> build/lib/ironic/common copying ironic/common/exception.py -> build/lib/ironic/common copying ironic/common/driver_factory.py -> build/lib/ironic/common copying ironic/common/dhcp_factory.py -> build/lib/ironic/common copying ironic/common/context.py -> build/lib/ironic/common copying ironic/common/console_factory.py -> build/lib/ironic/common copying ironic/common/config.py -> build/lib/ironic/common copying ironic/common/components.py -> build/lib/ironic/common copying ironic/common/cinder.py -> build/lib/ironic/common copying ironic/common/checksum_utils.py -> build/lib/ironic/common copying ironic/common/boot_modes.py -> build/lib/ironic/common copying ironic/common/boot_devices.py -> build/lib/ironic/common copying ironic/common/auth_basic.py -> build/lib/ironic/common copying ironic/common/async_steps.py -> build/lib/ironic/common copying ironic/common/args.py -> build/lib/ironic/common copying ironic/common/__init__.py -> build/lib/ironic/common creating build/lib/ironic/tests/unit/dhcp copying ironic/tests/unit/dhcp/test_neutron.py -> build/lib/ironic/tests/unit/dhcp copying ironic/tests/unit/dhcp/test_factory.py -> build/lib/ironic/tests/unit/dhcp copying ironic/tests/unit/dhcp/test_dnsmasq.py -> build/lib/ironic/tests/unit/dhcp copying ironic/tests/unit/dhcp/__init__.py -> build/lib/ironic/tests/unit/dhcp creating build/lib/ironic/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/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/console creating build/lib/ironic/tests/unit/console/rfb copying ironic/tests/unit/console/rfb/test_authnone.py -> build/lib/ironic/tests/unit/console/rfb copying ironic/tests/unit/console/rfb/test_auth.py -> build/lib/ironic/tests/unit/console/rfb copying ironic/tests/unit/console/rfb/__init__.py -> build/lib/ironic/tests/unit/console/rfb creating build/lib/ironic/drivers/modules/storage copying ironic/drivers/modules/storage/noop.py -> build/lib/ironic/drivers/modules/storage copying ironic/drivers/modules/storage/external.py -> build/lib/ironic/drivers/modules/storage copying ironic/drivers/modules/storage/cinder.py -> build/lib/ironic/drivers/modules/storage copying ironic/drivers/modules/storage/__init__.py -> build/lib/ironic/drivers/modules/storage creating build/lib/ironic/drivers/modules/ansible copying ironic/drivers/modules/ansible/deploy.py -> build/lib/ironic/drivers/modules/ansible copying ironic/drivers/modules/ansible/__init__.py -> build/lib/ironic/drivers/modules/ansible creating build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_verify.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_utils.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_task_manager.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_steps.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_servicing.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_rpcapi.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_rpc_service.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_periodics.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_notification_utils.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_manager.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_inspection.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_deployments.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_cleaning.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_base_manager.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_allocations.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/mgr_utils.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/__init__.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/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 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/tests/unit/console/container copying ironic/tests/unit/console/container/test_console_container.py -> build/lib/ironic/tests/unit/console/container copying ironic/tests/unit/console/container/__init__.py -> build/lib/ironic/tests/unit/console/container creating build/lib/ironic/api/controllers copying ironic/api/controllers/version.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/root.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/link.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/base.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/__init__.py -> build/lib/ironic/api/controllers copying ironic/tests/unit/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 creating build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/test_noop.py -> build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/test_neutron.py -> build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/test_flat.py -> build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/network creating build/lib/ironic/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/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/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/tests/unit/drivers/modules/xclarity copying ironic/tests/unit/drivers/modules/xclarity/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity creating build/lib/ironic/tests/unit/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/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/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/common/inspection_rules copying ironic/common/inspection_rules/validation.py -> build/lib/ironic/common/inspection_rules copying ironic/common/inspection_rules/utils.py -> build/lib/ironic/common/inspection_rules copying ironic/common/inspection_rules/operators.py -> build/lib/ironic/common/inspection_rules copying ironic/common/inspection_rules/engine.py -> build/lib/ironic/common/inspection_rules copying ironic/common/inspection_rules/base.py -> build/lib/ironic/common/inspection_rules copying ironic/common/inspection_rules/actions.py -> build/lib/ironic/common/inspection_rules copying ironic/common/inspection_rules/__init__.py -> build/lib/ironic/common/inspection_rules creating build/lib/ironic/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/functional copying ironic/tests/functional/__init__.py -> build/lib/ironic/tests/functional 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/conf copying ironic/conf/vnc.py -> build/lib/ironic/conf copying ironic/conf/swift.py -> build/lib/ironic/conf copying ironic/conf/snmp.py -> build/lib/ironic/conf copying ironic/conf/service_catalog.py -> build/lib/ironic/conf copying ironic/conf/sensor_data.py -> build/lib/ironic/conf copying ironic/conf/redfish.py -> build/lib/ironic/conf copying ironic/conf/pxe.py -> build/lib/ironic/conf copying ironic/conf/opts.py -> build/lib/ironic/conf copying ironic/conf/oci.py -> build/lib/ironic/conf copying ironic/conf/nova.py -> build/lib/ironic/conf copying ironic/conf/neutron.py -> build/lib/ironic/conf copying ironic/conf/molds.py -> build/lib/ironic/conf copying ironic/conf/metrics.py -> build/lib/ironic/conf copying ironic/conf/mdns.py -> build/lib/ironic/conf copying ironic/conf/json_rpc.py -> build/lib/ironic/conf copying ironic/conf/irmc.py -> build/lib/ironic/conf copying ironic/conf/ipmi.py -> build/lib/ironic/conf copying ironic/conf/inventory.py -> build/lib/ironic/conf copying ironic/conf/inspector.py -> build/lib/ironic/conf copying ironic/conf/ilo.py -> build/lib/ironic/conf copying ironic/conf/healthcheck.py -> build/lib/ironic/conf copying ironic/conf/glance.py -> build/lib/ironic/conf copying ironic/conf/fake.py -> build/lib/ironic/conf copying ironic/conf/exception.py -> build/lib/ironic/conf copying ironic/conf/drac.py -> build/lib/ironic/conf copying ironic/conf/dnsmasq.py -> build/lib/ironic/conf copying ironic/conf/disk_utils.py -> build/lib/ironic/conf copying ironic/conf/dhcp.py -> build/lib/ironic/conf copying ironic/conf/deploy.py -> build/lib/ironic/conf copying ironic/conf/default.py -> build/lib/ironic/conf copying ironic/conf/database.py -> build/lib/ironic/conf copying ironic/conf/console.py -> build/lib/ironic/conf copying ironic/conf/conductor.py -> build/lib/ironic/conf copying ironic/conf/cinder.py -> build/lib/ironic/conf copying ironic/conf/auth.py -> build/lib/ironic/conf copying ironic/conf/audit.py -> build/lib/ironic/conf copying ironic/conf/api.py -> build/lib/ironic/conf copying ironic/conf/ansible.py -> build/lib/ironic/conf copying ironic/conf/anaconda.py -> build/lib/ironic/conf copying ironic/conf/agent_containers.py -> build/lib/ironic/conf copying ironic/conf/agent.py -> build/lib/ironic/conf copying ironic/conf/__init__.py -> build/lib/ironic/conf creating build/lib/ironic/tests/unit/drivers/modules/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/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/test_types.py -> build/lib/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/test_models.py -> build/lib/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/test_migrations.py -> build/lib/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/test_api.py -> build/lib/ironic/tests/unit/db/sqlalchemy copying ironic/tests/unit/db/sqlalchemy/__init__.py -> build/lib/ironic/tests/unit/db/sqlalchemy creating build/lib/ironic/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/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/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/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 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/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/pxe_filter copying ironic/tests/unit/pxe_filter/test_service.py -> build/lib/ironic/tests/unit/pxe_filter copying ironic/tests/unit/pxe_filter/test_dnsmasq.py -> build/lib/ironic/tests/unit/pxe_filter copying ironic/tests/unit/pxe_filter/__init__.py -> build/lib/ironic/tests/unit/pxe_filter creating build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/utils.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_utils.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_raid.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/test_boot.py -> build/lib/ironic/tests/unit/drivers/modules/drac copying ironic/tests/unit/drivers/modules/drac/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/drac creating build/lib/ironic/console/rfb copying ironic/console/rfb/auths.py -> build/lib/ironic/console/rfb copying ironic/console/rfb/authnone.py -> build/lib/ironic/console/rfb copying ironic/console/rfb/auth.py -> build/lib/ironic/console/rfb copying ironic/console/rfb/__init__.py -> build/lib/ironic/console/rfb creating build/lib/ironic/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/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/pxe_filter copying ironic/pxe_filter/service.py -> build/lib/ironic/pxe_filter copying ironic/pxe_filter/dnsmasq.py -> build/lib/ironic/pxe_filter copying ironic/pxe_filter/__init__.py -> build/lib/ironic/pxe_filter creating build/lib/ironic/tests/unit/console/securityproxy copying ironic/tests/unit/console/securityproxy/test_websocketproxy.py -> build/lib/ironic/tests/unit/console/securityproxy copying ironic/tests/unit/console/securityproxy/test_rfb.py -> build/lib/ironic/tests/unit/console/securityproxy copying ironic/tests/unit/console/securityproxy/__init__.py -> build/lib/ironic/tests/unit/console/securityproxy creating build/lib/ironic/drivers/modules/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 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/drivers/modules/irmc copying ironic/drivers/modules/irmc/vendor.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/raid.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/power.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/management.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/inspect.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/common.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/boot.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/bios.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/__init__.py -> build/lib/ironic/drivers/modules/irmc creating build/lib/ironic/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/console/securityproxy copying ironic/console/securityproxy/rfb.py -> build/lib/ironic/console/securityproxy copying ironic/console/securityproxy/base.py -> build/lib/ironic/console/securityproxy copying ironic/console/securityproxy/__init__.py -> build/lib/ironic/console/securityproxy copying ironic/tests/unit/drivers/modules/test_snmp.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_ramdisk.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_pxe.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_noop_mgmt.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_noop.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_ipxe.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_ipmitool.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_inspect_utils.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_image_utils.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_image_cache.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_graphical_console.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_deploy_utils.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_console_utils.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_boot_mode_utils.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_agent_power.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_agent_client.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_agent_base.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_agent.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/__init__.py -> build/lib/ironic/tests/unit/drivers/modules creating build/lib/ironic/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 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) copying ironic/console/container/ironic-console.container.template -> build/lib/ironic/console/container 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 creating build/lib/ironic/api/schemas creating build/lib/ironic/api/schemas/v1 copying ironic/api/schemas/v1/shard.py -> build/lib/ironic/api/schemas/v1 copying ironic/drivers/raid_config_schema.json -> build/lib/ironic/drivers 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 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/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/tests/unit/api/test_acl_basic.yaml -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_rbac_legacy.yaml -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_rbac_project_scoped.yaml -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_rbac_system_scoped.yaml -> build/lib/ironic/tests/unit/api creating build/lib/ironic/tests/unit/drivers/modules/network/json_samples copying ironic/tests/unit/drivers/modules/network/json_samples/network_data.json -> build/lib/ironic/tests/unit/drivers/modules/network/json_samples 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/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/api/controllers/v1/network-data-schema.json -> build/lib/ironic/api/controllers/v1 copying ironic/drivers/modules/inspector/hooks/known_accelerators.yaml -> build/lib/ironic/drivers/modules/inspector/hooks copying ironic/db/sqlalchemy/alembic.ini -> build/lib/ironic/db/sqlalchemy creating build/lib/ironic/db/sqlalchemy/alembic copying ironic/db/sqlalchemy/alembic/README -> build/lib/ironic/db/sqlalchemy/alembic copying ironic/db/sqlalchemy/alembic/env.py -> build/lib/ironic/db/sqlalchemy/alembic copying ironic/db/sqlalchemy/alembic/script.py.mako -> build/lib/ironic/db/sqlalchemy/alembic creating build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/01f21d5e5195_increase_length_of_user_column.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/0ac0f39bc5aa_add_node_inventory_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/10b163d4481e_add_port_portgroup_internal_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/163040c5513f_add_firmware_information.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1a59178ebdf6_add_volume_targets_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1c14278d6e33_port_description.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1d6951876d68_add_storage_interface_db_field_and_.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1e15e7122cc9_add_extra_column_to_deploy_templates.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1e1d5ace7dc6_add_inspection_started_at_and_.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/21b331f883ef_add_provision_updated_at.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/21c48150dea9_add_inspection_rules.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2353895ecfae_add_conductor_hardware_interfaces_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/242cc6a923b3_add_node_maintenance_reason.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/28c44432c9c3_add_node_description.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2aac7e0872f6_add_deploy_templates.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2bbd96b6ccb9_add_bios_fields_from_registry.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2d13bc3d6bba_add_bios_config_and_interface.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2fb93ffd2af1_increase_node_name_length.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/31baaf680d2b_add_node_instance_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3ae36a5f5131_add_logical_name.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3bea56f25597_add_unique_constraint_to_instance_uuid.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3cb628139ea4_nodes_add_console_enabled.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3d86a077a3f2_add_port_physical_network.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/405cfe08f18d_add_rescue_interface_to_node.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/487deb87cc9d_add_conductor_affinity_and_online.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/48d6c242bb9b_add_node_tags.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/493d8f27f235_add_portgroup_configuration_fields.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/4dbec778866e_create_node_shard.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/4f399b21ae71_add_node_clean_step.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/516faf1bb9b1_resizing_column_nodes_driver.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/5674c57409b9_replace_nostate_with_available.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/5ea1b0d310e_added_port_group_table_and_altered_ports.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/60cf717201bc_add_standalone_ports_supported.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/664f85c2f622_add_conductor_group_to_nodes_conductors.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/66bd9c5604d5_add_runbook_and_runbook_step.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/6e9cf6acce0b_node_disable_power_off.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/789acc877671_add_raid_config.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/82c315d60161_add_bios_settings.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/868cb606a74a_add_version_field_in_base_class.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/93706939026c_add_node_protected_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/9cbeefa3763f_add_port_is_smartnic.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/9ef41f07cb58_add_node_history_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/aa2384fee727_add_service_steps.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/ac00b586ab95_node_indexes.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/b2ad35726bb0_add_node_lessee.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/b4130a7fc904_create_nodetraits_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/b9117ac17882_add_node_deploy_step.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/bb59b63f55a_add_node_driver_internal_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/bcdd431ba0bf_add_fields_for_all_interfaces.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/c0455649680c_port_name.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/c14cef6dfedf_populate_node_network_interface.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/c1846a214450_add_boot_mode_and_secure_boot.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/cd2c80feb331_add_node_retired_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/ce6c4b3cf5a2_add_allocation_owner.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/cf1a80fdb352_add_node_network_data_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/d163df1bab88_remove_extra_fk_constraint_in_.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/d2b036ae9378_add_automated_clean_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/daa1ba02d98_add_volume_connectors_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/dbefd6bdaa2c_add_default_column_to_.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/dd34e1f1303b_add_resource_class_to_node.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/dd67b91a1981_add_allocations_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/e294876e8028_add_node_network_interface.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/e918ff30eb42_resize_column_nodes_instance_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/f190f9d00a11_add_node_owner.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/f6fdb920c182_set_pxe_enabled_true.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/fb3f10dd262e_add_fault_to_node_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/fe222f476baf_add_parent_node_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions 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/pxe_filter copying build/lib/ironic/pxe_filter/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/pxe_filter copying build/lib/ironic/pxe_filter/dnsmasq.py -> build/bdist.linux-x86_64/wheel/ironic/pxe_filter copying build/lib/ironic/pxe_filter/service.py -> build/bdist.linux-x86_64/wheel/ironic/pxe_filter creating build/bdist.linux-x86_64/wheel/ironic/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/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/vnc.py -> build/bdist.linux-x86_64/wheel/ironic/conf creating build/bdist.linux-x86_64/wheel/ironic/dhcp copying build/lib/ironic/dhcp/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/dhcp copying build/lib/ironic/dhcp/base.py -> build/bdist.linux-x86_64/wheel/ironic/dhcp copying build/lib/ironic/dhcp/dnsmasq.py -> build/bdist.linux-x86_64/wheel/ironic/dhcp copying build/lib/ironic/dhcp/neutron.py -> build/bdist.linux-x86_64/wheel/ironic/dhcp copying build/lib/ironic/dhcp/none.py -> build/bdist.linux-x86_64/wheel/ironic/dhcp creating build/bdist.linux-x86_64/wheel/ironic/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 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/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/wsgi copying build/lib/ironic/wsgi/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/wsgi 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/console 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 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/container copying build/lib/ironic/console/container/ironic-console.container.template -> build/bdist.linux-x86_64/wheel/ironic/console/container copying build/lib/ironic/console/container/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/console/container copying build/lib/ironic/console/container/base.py -> build/bdist.linux-x86_64/wheel/ironic/console/container copying build/lib/ironic/console/container/fake.py -> build/bdist.linux-x86_64/wheel/ironic/console/container copying build/lib/ironic/console/container/systemd.py -> build/bdist.linux-x86_64/wheel/ironic/console/container creating build/bdist.linux-x86_64/wheel/ironic/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/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/common/glance_service copying build/lib/ironic/common/glance_service/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/common/glance_service copying build/lib/ironic/common/glance_service/image_service.py -> build/bdist.linux-x86_64/wheel/ironic/common/glance_service copying build/lib/ironic/common/glance_service/service_utils.py -> build/bdist.linux-x86_64/wheel/ironic/common/glance_service copying build/lib/ironic/common/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/args.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/async_steps.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/auth_basic.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/boot_devices.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/boot_modes.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/checksum_utils.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/cinder.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/components.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/config.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/console_factory.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/context.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/dhcp_factory.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/driver_factory.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/exception.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/faults.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/fsm.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/hash_ring.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/i18n.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/image_publisher.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/image_service.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/images.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/indicator_states.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/keystone.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/kickstart_utils.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/lessee_sources.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/mdns.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/metrics.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/metrics_collector.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/metrics_statsd.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/metrics_utils.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/molds.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/network.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/neutron.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/nova.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/oci_registry.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/policy.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/profiler.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/pxe_utils.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/qemu_img.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/raid.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/release_mappings.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/rpc.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/rpc_service.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/service.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/states.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/swift.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/utils.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/vnc.py -> build/bdist.linux-x86_64/wheel/ironic/common copying build/lib/ironic/common/wsgi_service.py -> build/bdist.linux-x86_64/wheel/ironic/common creating build/bdist.linux-x86_64/wheel/ironic/common/json_rpc copying build/lib/ironic/common/json_rpc/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/common/json_rpc copying build/lib/ironic/common/json_rpc/client.py -> build/bdist.linux-x86_64/wheel/ironic/common/json_rpc copying build/lib/ironic/common/json_rpc/server.py -> build/bdist.linux-x86_64/wheel/ironic/common/json_rpc copying build/lib/ironic/common/json_rpc/wsgi.py -> build/bdist.linux-x86_64/wheel/ironic/common/json_rpc creating build/bdist.linux-x86_64/wheel/ironic/drivers copying build/lib/ironic/drivers/raid_config_schema.json -> build/bdist.linux-x86_64/wheel/ironic/drivers copying build/lib/ironic/drivers/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/drivers copying build/lib/ironic/drivers/base.py -> build/bdist.linux-x86_64/wheel/ironic/drivers copying build/lib/ironic/drivers/drac.py -> build/bdist.linux-x86_64/wheel/ironic/drivers copying build/lib/ironic/drivers/fake_hardware.py -> build/bdist.linux-x86_64/wheel/ironic/drivers copying build/lib/ironic/drivers/generic.py -> build/bdist.linux-x86_64/wheel/ironic/drivers copying build/lib/ironic/drivers/hardware_type.py -> build/bdist.linux-x86_64/wheel/ironic/drivers copying build/lib/ironic/drivers/ilo.py -> build/bdist.linux-x86_64/wheel/ironic/drivers copying build/lib/ironic/drivers/intel_ipmi.py -> build/bdist.linux-x86_64/wheel/ironic/drivers copying build/lib/ironic/drivers/ipmi.py -> build/bdist.linux-x86_64/wheel/ironic/drivers copying build/lib/ironic/drivers/irmc.py -> build/bdist.linux-x86_64/wheel/ironic/drivers copying build/lib/ironic/drivers/redfish.py -> build/bdist.linux-x86_64/wheel/ironic/drivers copying build/lib/ironic/drivers/snmp.py -> build/bdist.linux-x86_64/wheel/ironic/drivers copying build/lib/ironic/drivers/utils.py -> build/bdist.linux-x86_64/wheel/ironic/drivers creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/pxe_grub_config.template -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/pxe_config.template -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/ks.cfg.template -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/ipxe_config.template -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/initial_grub_cfg.template -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules copying build/lib/ironic/drivers/modules/boot.ipxe -> build/bdist.linux-x86_64/wheel/ironic/drivers/modules creating build/bdist.linux-x86_64/wheel/ironic/drivers/modules/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/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/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/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/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/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 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/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/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/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/common creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/json_samples copying build/lib/ironic/tests/unit/common/json_samples/neutron_subnet_show_ipv6.json -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/json_samples copying build/lib/ironic/tests/unit/common/json_samples/neutron_subnet_show.json -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/json_samples copying build/lib/ironic/tests/unit/common/json_samples/neutron_port_show_ipv6.json -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/json_samples copying build/lib/ironic/tests/unit/common/json_samples/neutron_port_show.json -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/json_samples copying build/lib/ironic/tests/unit/common/json_samples/neutron_network_show_ipv6.json -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/json_samples copying build/lib/ironic/tests/unit/common/json_samples/neutron_network_show.json -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/json_samples creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/drive_samples copying build/lib/ironic/tests/unit/common/drive_samples/config_drive -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common/drive_samples copying build/lib/ironic/tests/unit/common/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_args.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_checksum_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_cinder.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_context.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_driver_factory.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_exception.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_fsm.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_glance_service.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_hash_ring.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_image_publisher.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_image_service.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_images.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_inspection_rule.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_json_rpc.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_keystone.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_kickstart_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_mdns.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_molds.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_network.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_neutron.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_nova.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_oci_registry.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_policy.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_pxe_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_qemu_img.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_raid.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_release_mappings.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_rpc.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_states.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_swift.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_vnc.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_wsgi_service.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/common creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/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 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/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/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/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 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/api copying build/lib/ironic/tests/unit/api/test_rbac_system_scoped.yaml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_rbac_project_scoped.yaml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_rbac_legacy.yaml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_acl_basic.yaml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/base.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_acl.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_audit.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_functions.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_healthcheck.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_hooks.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_method.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_middleware.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_ospmiddleware.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_proxy_middleware.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/test_root.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api copying build/lib/ironic/tests/unit/api/utils.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/validation copying build/lib/ironic/tests/unit/api/validation/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/validation copying build/lib/ironic/tests/unit/api/validation/test_validators.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/validation creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/api/controllers 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/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 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/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 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/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/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/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/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/ansible copying build/lib/ironic/tests/unit/drivers/modules/ansible/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ansible copying build/lib/ironic/tests/unit/drivers/modules/ansible/test_deploy.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/ansible creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/xclarity copying build/lib/ironic/tests/unit/drivers/modules/xclarity/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/xclarity creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/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/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ok.xml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ng.xml -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_bios.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_boot.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_common.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_inspect.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_management.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_periodic_task.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_power.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_raid.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/irmc creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/intel_ipmi copying build/lib/ironic/tests/unit/drivers/modules/intel_ipmi/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/intel_ipmi copying build/lib/ironic/tests/unit/drivers/modules/intel_ipmi/base.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/intel_ipmi copying build/lib/ironic/tests/unit/drivers/modules/intel_ipmi/test_intel_ipmi.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/intel_ipmi copying build/lib/ironic/tests/unit/drivers/modules/intel_ipmi/test_management.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/intel_ipmi creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_accelerators.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_architecture.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_boot_mode.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_cpu_capabilities.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_extra_hardware.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_local_link_connection.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_memory.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_parse_lldp.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_pci_devices.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_physical_network.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_ports.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_raid_device.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_ramdisk_error.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_root_device.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/hooks/test_validate_interfaces.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector/hooks copying build/lib/ironic/tests/unit/drivers/modules/inspector/__init__.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector copying build/lib/ironic/tests/unit/drivers/modules/inspector/test_agent.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector copying build/lib/ironic/tests/unit/drivers/modules/inspector/test_client.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector copying build/lib/ironic/tests/unit/drivers/modules/inspector/test_interface.py -> build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/inspector creating build/bdist.linux-x86_64/wheel/ironic/tests/unit/drivers/modules/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 running install_data creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev82.data creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev82.data/data creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev82.data/data/etc creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev82.data/data/etc/ironic copying etc/ironic/rootwrap.conf -> build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev82.data/data/etc/ironic creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev82.data/data/etc/ironic/rootwrap.d copying etc/ironic/rootwrap.d/ironic-utils.filters -> build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev82.data/data/etc/ironic/rootwrap.d/ creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev82.data/data/share creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev82.data/data/share/ironic creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev82.data/data/share/ironic/vnc-container copying tools/vnc-container/README.rst -> build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev82.data/data/share/ironic/vnc-container/ copying tools/vnc-container/Containerfile -> build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev82.data/data/share/ironic/vnc-container/ creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev82.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.dev82.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.dev82.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.dev82.data/data/share/ironic/vnc-container/bin creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev82.data/data/share/ironic/vnc-container/drivers creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev82.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.dev82.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.dev82.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.dev82-py3.12.egg-info running install_scripts Installing ironic-api-wsgi script to build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev82.data/scripts creating build/bdist.linux-x86_64/wheel/ironic-29.1.0.dev82.dist-info/WHEEL creating '/builddir/build/BUILD/ironic-29.1.0.dev82/.pyproject-builddir/pip-wheel-wmi8r19w/.tmp-8emwxf91/ironic-29.1.0.dev82-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/common/json_rpc/wsgi.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/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/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.dev82.data/data/etc/ironic/rootwrap.conf' adding 'ironic-29.1.0.dev82.data/data/etc/ironic/rootwrap.d/ironic-utils.filters' adding 'ironic-29.1.0.dev82.data/data/share/ironic/vnc-container/Containerfile' adding 'ironic-29.1.0.dev82.data/data/share/ironic/vnc-container/README.rst' adding 'ironic-29.1.0.dev82.data/data/share/ironic/vnc-container/bin/start-browser-x11vnc.sh' adding 'ironic-29.1.0.dev82.data/data/share/ironic/vnc-container/bin/start-selenium-browser.py' adding 'ironic-29.1.0.dev82.data/data/share/ironic/vnc-container/bin/start-xvfb.sh' adding 'ironic-29.1.0.dev82.data/data/share/ironic/vnc-container/drivers/fake/index.html' adding 'ironic-29.1.0.dev82.data/data/share/ironic/vnc-container/drivers/fake/ironic_mascot_color.png' adding 'ironic-29.1.0.dev82.data/scripts/ironic-api-wsgi' adding 'ironic-29.1.0.dev82.dist-info/AUTHORS' adding 'ironic-29.1.0.dev82.dist-info/LICENSE' adding 'ironic-29.1.0.dev82.dist-info/METADATA' adding 'ironic-29.1.0.dev82.dist-info/WHEEL' adding 'ironic-29.1.0.dev82.dist-info/entry_points.txt' adding 'ironic-29.1.0.dev82.dist-info/pbr.json' adding 'ironic-29.1.0.dev82.dist-info/top_level.txt' adding 'ironic-29.1.0.dev82.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.dev82-py3-none-any.whl size=2251143 sha256=d13d1343581e0f0bb3ae89df7a22ab71051074c058bbcc0c8b1c916041d9de99 Stored in directory: /builddir/.cache/pip/wheels/03/86/23/b699dd03a235f04fae844f421937b962e5646764a98dd5170a Successfully built ironic + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.yKv4ig + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64 '!=' / ']' + rm -rf /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64 ++ dirname /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64 + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64 + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd ironic-29.1.0.dev82 ++ ls /builddir/build/BUILD/ironic-29.1.0.dev82/pyproject-wheeldir/ironic-29.1.0.dev82-py3-none-any.whl ++ xargs basename --multiple ++ sed -E 's/([^-]+)-([^-]+)-.+\.whl/\1==\2/' + specifier=ironic==29.1.0.dev82 + '[' -z ironic==29.1.0.dev82 ']' + TMPDIR=/builddir/build/BUILD/ironic-29.1.0.dev82/.pyproject-builddir + /usr/bin/python3 -m pip install --root /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.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.dev82/pyproject-wheeldir ironic==29.1.0.dev82 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.dev82/pyproject-wheeldir Processing ./pyproject-wheeldir/ironic-29.1.0.dev82-py3-none-any.whl Installing collected packages: ironic changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/bin/ironic to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/bin/ironic-api to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/bin/ironic-conductor to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/bin/ironic-dbsync to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/bin/ironic-novncproxy to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/bin/ironic-pxe-filter to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/bin/ironic-rootwrap to 755 changing mode of /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/bin/ironic-status to 755 Successfully installed ironic-29.1.0.dev82 + '[' -d /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.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.20250507225206.945f688.el10.x86_64/usr/bin/ironic /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/bin/ironic-api /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/bin/ironic-api-wsgi /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/bin/ironic-conductor /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/bin/ironic-dbsync /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/bin/ironic-novncproxy /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/bin/ironic-pxe-filter /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/bin/ironic-rootwrap /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/bin/ironic-status /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/bin/ironic: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/bin/ironic-api: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/bin/ironic-api-wsgi: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/bin/ironic-conductor: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/bin/ironic-dbsync: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/bin/ironic-novncproxy: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/bin/ironic-pxe-filter: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/bin/ironic-rootwrap: updating /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/bin/ironic-status: updating + rm -rfv /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/bin/__pycache__ + rm -f /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64-pyproject-ghost-distinfo + site_dirs=() + '[' -d /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.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.20250507225206.945f688.el10.x86_64/usr/lib64/python3.12/site-packages '!=' /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/lib/python3.12/site-packages ']' + '[' -d /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.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.20250507225206.945f688.el10.x86_64$site_dir/*.dist-info + echo '%ghost /usr/lib/python3.12/site-packages/ironic-29.1.0.dev82.dist-info' + sed -i s/pip/rpm/ /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/lib/python3.12/site-packages/ironic-29.1.0.dev82.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.20250507225206.945f688.el10.x86_64 --record /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/lib/python3.12/site-packages/ironic-29.1.0.dev82.dist-info/RECORD --output /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64-pyproject-record + rm -fv /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/lib/python3.12/site-packages/ironic-29.1.0.dev82.dist-info/RECORD removed '/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/lib/python3.12/site-packages/ironic-29.1.0.dev82.dist-info/RECORD' + rm -fv /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/lib/python3.12/site-packages/ironic-29.1.0.dev82.dist-info/REQUESTED removed '/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/lib/python3.12/site-packages/ironic-29.1.0.dev82.dist-info/REQUESTED' ++ wc -l /builddir/build/BUILD/openstack-ironic-29.1.0-0.20250507225206.945f688.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.20250507225206.945f688.el10.x86_64/etc/logrotate.d/openstack-ironic + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.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.20250507225206.945f688.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.20250507225206.945f688.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.20250507225206.945f688.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.20250507225206.945f688.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.20250507225206.945f688.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.20250507225206.945f688.el10.x86_64/usr/lib/systemd/system + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.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.20250507225206.945f688.el10.x86_64/etc/sudoers.d/ironic + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/var/lib/ironic/ + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/var/log/ironic/ + mkdir -p /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/etc/ironic/rootwrap.d + export PYTHONPATH=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64//usr/lib/python3.12/site-packages + PYTHONPATH=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.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.20250507225206.945f688.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.20250507225206.945f688.el10.x86_64/usr/etc/ironic/rootwrap.conf /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64//etc/ironic/rootwrap.conf + mv /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/etc/ironic/rootwrap.d/ironic-utils.filters /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64//etc/ironic/rootwrap.d/ + rmdir /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/etc/ironic/rootwrap.d + rmdir /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.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.20250507225206.945f688.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.20250507225206.945f688.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.20250507225206.945f688.el10 --unique-debug-suffix -29.1.0-0.20250507225206.945f688.el10.x86_64 --unique-debug-src-base openstack-ironic-29.1.0-0.20250507225206.945f688.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.dev82 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.20250507225206.945f688.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.XBgbWH + umask 022 + cd /builddir/build/BUILD + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 -I/usr/lib64/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd ironic-29.1.0.dev82 + TOX_TESTENV_PASSENV='*' + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -march=x86-64-v3 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -mtls-dialect=gnu2 ' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + PATH=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin + PYTHONPATH=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/lib64/python3.12/site-packages:/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/lib/python3.12/site-packages + PYTHONDONTWRITEBYTECODE=1 + PYTEST_ADDOPTS=' --ignore=/builddir/build/BUILD/ironic-29.1.0.dev82/.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. 2025-05-07 18:57:36.717 3928006 INFO oslo_service.backend [-] Loading backend: eventlet 2025-05-07 18:57:36.727 3928006 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. 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-07 18:57:37.260 3928017 INFO oslo_service.backend [-] Loading backend: eventlet 2025-05-07 18:57:37.275 3928017 INFO oslo_service.backend [-] Backend 'eventlet' successfully loaded and cached. 2025-05-07 18:57:37.303 3928021 INFO oslo_service.backend [-] Loading backend: eventlet 2025-05-07 18:57:37.319 3928021 INFO oslo_service.backend [-] Backend 'eventlet' successfully loaded and cached. 2025-05-07 18:57:37.518 3928009 INFO oslo_service.backend [-] Loading backend: eventlet 2025-05-07 18:57:37.549 3928009 INFO oslo_service.backend [-] Backend 'eventlet' successfully loaded and cached. {2} ironic.tests.unit.api.controllers.test_base.TestVersion.test_equals [0.434129s] ... 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( {2} ironic.tests.unit.api.controllers.test_base.TestVersion.test_greaterthan [0.030065s] ... ok {2} ironic.tests.unit.api.controllers.test_base.TestVersion.test_init [0.024885s] ... ok {2} ironic.tests.unit.api.controllers.test_base.TestVersion.test_lessthan [0.028076s] ... ok {2} ironic.tests.unit.api.controllers.test_base.TestVersion.test_not_equals [0.026615s] ... ok {2} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_bad_length [0.028584s] ... ok {2} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_latest [0.049628s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add [0.266715s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/1cbe8462-60bf-4727-92a8-f14f2043054e WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fb521c33-c235-40bd-bd6b-5ef2b23c5f6e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1cbe8462-60bf-4727-92a8-f14f2043054e", "created_at": "2025-05-07T22:57:46.244883+00:00", "updated_at": "2025-05-07T22:57:46.265114+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/1cbe8462-60bf-4727-92a8-f14f2043054e", "rel": "self"}, {"href": "http://localhost/allocations/1cbe8462-60bf-4727-92a8-f14f2043054e", "rel": "bookmark"}], "node_uuid": null} Captured stderr: ~~~~~~~~~~~~~~~~ INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Running stamp_revision -> 1c14278d6e33 /usr/lib/python3.12/site-packages/bs4/css.py:8: UserWarning: The soupsieve package is not installed. CSS selectors cannot be used. warnings.warn( {2} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_ok [0.044362s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_multi [0.051511s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/e3fd837a-e768-4078-89cc-6a6ad7815394 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-727fb337-452f-41a8-bb39-a322164efcb6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e3fd837a-e768-4078-89cc-6a6ad7815394", "created_at": "2025-05-07T22:57:46.300804+00:00", "updated_at": "2025-05-07T22:57:46.314889+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/e3fd837a-e768-4078-89cc-6a6ad7815394", "rel": "self"}, {"href": "http://localhost/allocations/e3fd837a-e768-4078-89cc-6a6ad7815394", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/e3fd837a-e768-4078-89cc-6a6ad7815394 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8e50e49f-47a4-4c3f-b5f6-68384c30eb2f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e3fd837a-e768-4078-89cc-6a6ad7815394", "created_at": "2025-05-07T22:57:46.300804+00:00", "updated_at": "2025-05-07T22:57:46.314889+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/e3fd837a-e768-4078-89cc-6a6ad7815394", "rel": "self"}, {"href": "http://localhost/allocations/e3fd837a-e768-4078-89cc-6a6ad7815394", "rel": "bookmark"}], "node_uuid": null} {2} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_new_standard_singular_header_ok [0.028066s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_non_existent [0.036214s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/4330e455-c594-4c78-92ef-dc4b3090314d WITH [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3450dbae-da79-4aa2-98cc-31d2ef578fda X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: name, extra\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_no_header [0.028915s] ... ok {2} ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr [0.025731s] ... ok {2} ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr_with_strings [0.035746s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_multi [0.071505s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/15c95178-3612-48c7-9d50-016930089ba6 WITH [{'path': '/extra/foo2', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-edbcbb03-217e-4b39-bd30-59e1e9d77418 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "15c95178-3612-48c7-9d50-016930089ba6", "created_at": "2025-05-07T22:57:46.391841+00:00", "updated_at": "2025-05-07T22:57:46.406913+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/15c95178-3612-48c7-9d50-016930089ba6", "rel": "self"}, {"href": "http://localhost/allocations/15c95178-3612-48c7-9d50-016930089ba6", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/15c95178-3612-48c7-9d50-016930089ba6 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8a0f6418-844d-4db7-84c2-bbee76b74c86 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "15c95178-3612-48c7-9d50-016930089ba6", "created_at": "2025-05-07T22:57:46.391841+00:00", "updated_at": "2025-05-07T22:57:46.406913+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/15c95178-3612-48c7-9d50-016930089ba6", "rel": "self"}, {"href": "http://localhost/allocations/15c95178-3612-48c7-9d50-016930089ba6", "rel": "bookmark"}], "node_uuid": null} PATCH /v1/allocations/15c95178-3612-48c7-9d50-016930089ba6 WITH [{'path': '/extra', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-50b6a1ea-c087-4620-a8eb-c9a14c4ca1df X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "15c95178-3612-48c7-9d50-016930089ba6", "created_at": "2025-05-07T22:57:46.391841+00:00", "updated_at": "2025-05-07T22:57:46.425355+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/15c95178-3612-48c7-9d50-016930089ba6", "rel": "self"}, {"href": "http://localhost/allocations/15c95178-3612-48c7-9d50-016930089ba6", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/15c95178-3612-48c7-9d50-016930089ba6 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2b80ce88-e2dc-438a-b20d-ff4fe427eeb2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "15c95178-3612-48c7-9d50-016930089ba6", "created_at": "2025-05-07T22:57:46.391841+00:00", "updated_at": "2025-05-07T22:57:46.425355+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/15c95178-3612-48c7-9d50-016930089ba6", "rel": "self"}, {"href": "http://localhost/allocations/15c95178-3612-48c7-9d50-016930089ba6", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_non_existent_property_fail [0.039941s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/61125817-8851-4bde-a48b-0aadb793df35 WITH [{'path': '/extra/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d75b637d-bd33-4823-b0b9-5b3a28720481 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove a non-existent object 'non-existent'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis [0.093400s] ... 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-ce5a7062-70b2-4af9-8dc9-0141babfe73f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9cf98958-838e-4ce6-8bdf-af2d0f7a84da X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_singular [0.058429s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/0df66c32-1eb7-4e93-a50a-8547b111f191 WITH [{'path': '/extra/a', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e0461574-86c6-4275-ba45-8f5c336839aa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "0df66c32-1eb7-4e93-a50a-8547b111f191", "created_at": "2025-05-07T22:57:46.512147+00:00", "updated_at": "2025-05-07T22:57:46.525813+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/0df66c32-1eb7-4e93-a50a-8547b111f191", "rel": "self"}, {"href": "http://localhost/allocations/0df66c32-1eb7-4e93-a50a-8547b111f191", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/0df66c32-1eb7-4e93-a50a-8547b111f191 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-00da143b-69bd-44be-b865-49f8b6f54975 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "0df66c32-1eb7-4e93-a50a-8547b111f191", "created_at": "2025-05-07T22:57:46.512147+00:00", "updated_at": "2025-05-07T22:57:46.525813+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/0df66c32-1eb7-4e93-a50a-8547b111f191", "rel": "self"}, {"href": "http://localhost/allocations/0df66c32-1eb7-4e93-a50a-8547b111f191", "rel": "bookmark"}], "node_uuid": null} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_doesnt_contain_id [0.046060s] ... 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-61f11fcc-7e77-4018-b175-3c6f86a2f4d1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-07T22:57:46.565219+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-2510a84c-5ab2-4b56-a2a9-772c57107fa4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-07T22:57:46.565219+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"}]]} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_error [0.034511s] ... 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-f14f0667-bc46-4902-b138-3a41c5c9103d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_uuid [0.104620s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/f68995c2-94d2-4599-af34-51ec1ac68bf8 WITH [{'path': '/uuid', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6d64e357-968e-4916-8d78-cb0d5e82d8ca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: name, extra\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_generate_uuid [0.060949s] ... 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/44d17fa1-2968-4984-94bc-2e63bef3a369 Openstack-Request-Id: req-6cd53d89-7989-4781-9133-64ef735abb9e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "44d17fa1-2968-4984-94bc-2e63bef3a369", "created_at": "2025-05-07T22:57:46.659342+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/44d17fa1-2968-4984-94bc-2e63bef3a369", "rel": "self"}, {"href": "http://localhost/chassis/44d17fa1-2968-4984-94bc-2e63bef3a369", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/44d17fa1-2968-4984-94bc-2e63bef3a369/nodes", "rel": "self"}, {"href": "http://localhost/chassis/44d17fa1-2968-4984-94bc-2e63bef3a369/nodes", "rel": "bookmark"}]]} GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a8b205d3-b50b-43a2-b72d-8b179753a0d5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"chassis": [{"uuid": "44d17fa1-2968-4984-94bc-2e63bef3a369", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/44d17fa1-2968-4984-94bc-2e63bef3a369", "rel": "self"}, {"href": "http://localhost/chassis/44d17fa1-2968-4984-94bc-2e63bef3a369", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_invalid_description [0.034658s] ... 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-b6616d40-0196-4106-bd23-283de7be73da X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for chassis: 1334 is not of type 'string', 'null'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_invalid_name [0.084530s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/14f93432-acda-475c-a21a-5f363e909115 WITH [{'path': '/name', 'value': '[test]', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a5e1f060-b90e-49f0-97c3-e75c4a147bb1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update allocation with invalid name '[test]'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_toolong_description [0.039056s] ... 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-09bc3df7-6b30-4bef-b4d1-8a2171a5e13f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for chassis: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' is too long\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_unicode_description [0.057902s] ... 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-eb468cae-a501-4646-89e7-16f394563338 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-07T22:57:46.791317+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-dedfaf41-732e-402b-94ff-bc32fc4c727b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-07T22:57:46.791317+00:00", "updated_at": null, "description": "\u0430\u043c\u043e", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_multi [0.110021s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/6c83be22-7fcd-4e6d-ab9c-3c0301c1d406 WITH [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0bfe97ff-853a-4ede-b872-ed7ca7395f74 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6c83be22-7fcd-4e6d-ab9c-3c0301c1d406", "created_at": "2025-05-07T22:57:46.779059+00:00", "updated_at": "2025-05-07T22:57:46.815996+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/6c83be22-7fcd-4e6d-ab9c-3c0301c1d406", "rel": "self"}, {"href": "http://localhost/allocations/6c83be22-7fcd-4e6d-ab9c-3c0301c1d406", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/6c83be22-7fcd-4e6d-ab9c-3c0301c1d406 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d7655e2f-325f-4dd7-af6b-c081574c0daa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6c83be22-7fcd-4e6d-ab9c-3c0301c1d406", "created_at": "2025-05-07T22:57:46.779059+00:00", "updated_at": "2025-05-07T22:57:46.815996+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/6c83be22-7fcd-4e6d-ab9c-3c0301c1d406", "rel": "self"}, {"href": "http://localhost/allocations/6c83be22-7fcd-4e6d-ab9c-3c0301c1d406", "rel": "bookmark"}], "node_uuid": null} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_valid_extra [0.047911s] ... 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-c3730bcb-fc2f-4b0c-8fd8-1decdc17bf28 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-07T22:57:46.836452+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-7a68bd1c-6e1e-4f40-a78b-ab1f65628b2a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-07T22:57:46.836452+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_name_with_none [0.103973s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/3d0550c0-2baa-477f-b0bf-0f29ea204b86 WITH [{'path': '/name', 'value': None, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-da10c231-c50a-4dab-94fc-232fa19f09e7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "3d0550c0-2baa-477f-b0bf-0f29ea204b86", "created_at": "2025-05-07T22:57:46.891061+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/3d0550c0-2baa-477f-b0bf-0f29ea204b86", "rel": "self"}, {"href": "http://localhost/allocations/3d0550c0-2baa-477f-b0bf-0f29ea204b86", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/3d0550c0-2baa-477f-b0bf-0f29ea204b86 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-22f33f89-1dd6-411c-a163-ba002169fa4d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "3d0550c0-2baa-477f-b0bf-0f29ea204b86", "created_at": "2025-05-07T22:57:46.891061+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/3d0550c0-2baa-477f-b0bf-0f29ea204b86", "rel": "self"}, {"href": "http://localhost/allocations/3d0550c0-2baa-477f-b0bf-0f29ea204b86", "rel": "bookmark"}], "node_uuid": null} {2} ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_post_nodes_subresource [0.204314s] ... 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-ea75f0b1-497a-4715-b1d1-a92894a49cd9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_replace_singular [0.115889s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/86a1b86f-8b02-4eb9-b4ed-b29ae8bf6844 WITH [{'path': '/name', 'value': 'test', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1e7fa01a-9ad5-4138-b78a-890f1adc7899 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "86a1b86f-8b02-4eb9-b4ed-b29ae8bf6844", "created_at": "2025-05-07T22:57:46.995674+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/86a1b86f-8b02-4eb9-b4ed-b29ae8bf6844", "rel": "self"}, {"href": "http://localhost/allocations/86a1b86f-8b02-4eb9-b4ed-b29ae8bf6844", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/86a1b86f-8b02-4eb9-b4ed-b29ae8bf6844 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e54f58d8-0a0a-418c-ab8b-7e9d84ddab09 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "86a1b86f-8b02-4eb9-b4ed-b29ae8bf6844", "created_at": "2025-05-07T22:57:46.995674+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/86a1b86f-8b02-4eb9-b4ed-b29ae8bf6844", "rel": "self"}, {"href": "http://localhost/allocations/86a1b86f-8b02-4eb9-b4ed-b29ae8bf6844", "rel": "bookmark"}], "node_uuid": null} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cached [0.119873s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/manual-management/properties WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f26c1610-336f-4c16-9208-a5d0531b3f54 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"prop1": "Property 1. Required."} GET /v1/drivers/manual-management/properties WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0f5c93db-fa84-40af-bb5c-f1bc5c753d97 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"prop1": "Property 1. Required."} GET /v1/drivers/manual-management/properties WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dbd52f58-985d-45f8-9b5d-65828c9a57ee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"prop1": "Property 1. Required."} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_error [0.183651s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/06d47456-a186-42d1-84fc-b8be89146f07 WITH [{'path': '/name', 'value': 'new', 'op': 'replace'}] GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-eb30e76e-cf74-4f0d-b1c3-a0bf5c20af01 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cannot_load [0.126586s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/driver/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-dc40dfa0-474b-4d91-8745-1b259ff0c0f9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): driver.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_allowed [0.090635s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/6c143b76-5ca6-44e2-86ba-de87fb8f00f2 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 405 Method Not Allowed Content-Type: application/json Openstack-Request-Id: req-7f2eddda-7f08-45b4-a2b8-2541b7dd9abc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The API version does not allow updating allocations\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_fake [0.072629s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/test/properties WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ac5db75a-fb90-4793-a4ac-27ba347a05ae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"prop1": "Property 1. Required."} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_found [0.074001s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/60549615-6c99-47dd-8705-5af1138523e0 WITH [{'path': '/name', 'value': 'b', 'op': 'replace'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d326da80-a11f-4b87-bb7f-589165019aad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 60549615-6c99-47dd-8705-5af1138523e0 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_hw_type [0.069372s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/manual-management/properties WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cb4570f9-4221-4ae3-b548-09dfda0630ca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"prop1": "Property 1. Required."} {0} ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_owner_not_acceptable [0.100849s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/5b8a1e45-58a3-42bc-81bd-02af0f5636f1 WITH [{'path': '/owner', 'value': '54321', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1382404a-6b06-43bc-a62e-0fe2e0cf31d2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /owner. Only the following can be updated: name, extra\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_invalid_driver_name [0.124372s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/bad_driver/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-95e386c0-e161-4b01-9bcc-04df0aafbabf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): bad_driver.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis [0.183828s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 204 No Content Openstack-Request-Id: req-a37c36db-00ed-47ff-93f4-b37287070f51 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6ab0893d-3231-4674-8544-e2b5d7031a43 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis e74c40e0-d825-11e2-a28f-0800200c9a66 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_not_found [0.055675s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/16fe0149-fa42-4921-8545-0eda02bfb454 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-df88163a-98fb-4d16-a881-3d554faebc98 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis 16fe0149-fa42-4921-8545-0eda02bfb454 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events [0.208889s] ... 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-9a21444b-a139-478b-91a9-67b2656ba6ac X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_with_node [0.103516s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0e7a0b20-16c0-4799-987f-949809e26537 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot complete the requested action because chassis e74c40e0-d825-11e2-a28f-0800200c9a66 contains nodes.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_does_not_contain_event [0.079746s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'INVALID': 'fake.event'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3480259c-c304-4b2b-b162-989f41b21111 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'event' is a required property\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_invalid_event [0.050314s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'invalid.event'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-019c2a79-c9f6-4860-82d5-dd598121492b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'invalid.event' is not one of ['network.bind_port', 'network.unbind_port', 'network.delete_port']\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_nodes_subresource [0.096569s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-278f041b-a4d3-4dac-9ee8-8a9b46abaca9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_unsupported_api_version [0.033645s] ... 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-8c0f4355-c49e-43ef-9143-b0051baa1376 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_multiple_events [0.055621s] ... 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-107c4cc1-f4ca-4174-aca4-e8e8a5549491 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_bind_port_events [0.056889s] ... 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-c336f685-b95b-42c2-8e13-7743c7d58467 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_delete_port_events [0.050897s] ... 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-2303bde1-e924-4dce-acc3-93ee34af3c92 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links [0.174951s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bffd4bb3-2853-4d35-b4ef-5bba14f89de4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"chassis": [{"uuid": "de8c257d-0a3b-4908-98d5-75744d9e2a11", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/de8c257d-0a3b-4908-98d5-75744d9e2a11", "rel": "self"}, {"href": "http://localhost/chassis/de8c257d-0a3b-4908-98d5-75744d9e2a11", "rel": "bookmark"}]}, {"uuid": "d505d4c0-53d1-41e2-a109-173dbd4a4f4e", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/d505d4c0-53d1-41e2-a109-173dbd4a4f4e", "rel": "self"}, {"href": "http://localhost/chassis/d505d4c0-53d1-41e2-a109-173dbd4a4f4e", "rel": "bookmark"}]}, {"uuid": "a07fb8f7-4a76-44fc-bc03-4e1840da2ba3", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/a07fb8f7-4a76-44fc-bc03-4e1840da2ba3", "rel": "self"}, {"href": "http://localhost/chassis/a07fb8f7-4a76-44fc-bc03-4e1840da2ba3", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=a07fb8f7-4a76-44fc-bc03-4e1840da2ba3"} {3} ironic.tests.unit.api.controllers.test_base.TestBase.test_api_setup [0.334563s] ... 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( {2} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_binding_host_id [0.071722s] ... 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-fcf1114c-1646-4651-a73e-d219354b494f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['binding:host_id', 'IS', 'NODE_UUID', 'IN', 'IRONIC'] is not of type 'string', 'null'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.test_base.TestBase.test_bad_uri [0.061519s] ... 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.v1.test_chassis.TestListChassis.test_collection_links_custom_fields [0.217105s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?fields=extra,uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dadb83b3-53e4-4f7e-860b-ee1cc6aaa7a7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "e0ff6445-262b-487f-9abe-9a5d67201a3a", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e0ff6445-262b-487f-9abe-9a5d67201a3a", "rel": "self"}, {"href": "http://localhost/chassis/e0ff6445-262b-487f-9abe-9a5d67201a3a", "rel": "bookmark"}]}, {"uuid": "25f22f4a-cefb-44e0-945b-d5df826baddd", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/25f22f4a-cefb-44e0-945b-d5df826baddd", "rel": "self"}, {"href": "http://localhost/chassis/25f22f4a-cefb-44e0-945b-d5df826baddd", "rel": "bookmark"}]}, {"uuid": "6595dba5-5510-4ae6-8231-0bb0604fdab0", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/6595dba5-5510-4ae6-8231-0bb0604fdab0", "rel": "self"}, {"href": "http://localhost/chassis/6595dba5-5510-4ae6-8231-0bb0604fdab0", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra,uuid&limit=3&marker=6595dba5-5510-4ae6-8231-0bb0604fdab0"} {2} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_binding_vnic_type [0.245222s] ... 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-95e0a1a9-3949-4e70-9ac9-813d77325593 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['binding:vnic_type', 'SHOULD', 'BE', 'TEXT'] is not of type 'string', 'null'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_default_limit [0.180940s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-93da12e5-29a8-4ffd-9742-15be2da66ef9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"chassis": [{"uuid": "613478dd-e833-4f16-aeb6-210ff13eda7c", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/613478dd-e833-4f16-aeb6-210ff13eda7c", "rel": "self"}, {"href": "http://localhost/chassis/613478dd-e833-4f16-aeb6-210ff13eda7c", "rel": "bookmark"}]}, {"uuid": "d636c9c7-8232-4895-816f-335a14159f48", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/d636c9c7-8232-4895-816f-335a14159f48", "rel": "self"}, {"href": "http://localhost/chassis/d636c9c7-8232-4895-816f-335a14159f48", "rel": "bookmark"}]}, {"uuid": "01bf57a3-3400-4788-9801-61e4892442d4", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/01bf57a3-3400-4788-9801-61e4892442d4", "rel": "self"}, {"href": "http://localhost/chassis/01bf57a3-3400-4788-9801-61e4892442d4", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=01bf57a3-3400-4788-9801-61e4892442d4"} {2} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_device_id [0.137444s] ... 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-cc774a68-e684-4c3a-ba34-f3698bc15e09 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for device_id: DEVICE_ID_SHOULD_BE_UUID\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail [0.035127s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b54912f7-7357-4619-a490-deecdc6d8b70 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-07T22:57:48.588909+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_chassis.TestListChassis.test_detail_against_single [0.027938s] ... 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-b65e94b4-3c4a-41b9-b1bc-1fce2d5fee58 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_id [0.408553s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/58d35c9f-7164-469d-9fe7-f76351766830 GOT Response: 204 No Content Openstack-Request-Id: req-203d7731-2e82-4e6c-a3c2-1beef0df8603 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_mac_address [0.080928s] ... 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-1af2d179-9464-41c3-96ab-9b5f672b983d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for mac_address: INVALID_MAC_ADDRESS\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query [0.046819s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b895d3a2-a7eb-4610-a345-44fc1a0e03eb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-07T22:57:48.651135+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]}]} {2} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_port_id [0.069877s] ... 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-bba95d4c-b46f-46d4-9987-f8403e7c6603 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for port_id: PORT_ID_SHOULD_BE_UUID\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name [0.147932s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/alloc1 GOT Response: 204 No Content Openstack-Request-Id: req-f288d91c-540e-4ba5-91b1-b78362814321 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query_false [0.120959s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7363db90-0091-4686-984b-62796b95912e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]} GET /v1/chassis?detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-69edc90a-eafd-4a2b-bd0f-0488e3bb6cae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_and_fields [0.084752s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?detail=True&fields=description WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5eeebdad-e420-4717-8876-82c337c5e79b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_not_existed [0.120855s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/blah GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-461cb8f7-c5a0-41b3-a4fa-6049cdd32255 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation blah could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_false_and_fields [0.074580s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?detail=False&fields=description WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7ea71ca5-7aa0-46cd-8cf5-62bac2e4ae73 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_with_json [0.074927s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/alloc1.json GOT Response: 204 No Content Openstack-Request-Id: req-1782f500-cdfb-40c0-aca4-ccc0f6ad0720 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name_with_json_not_found [0.064006s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/alloc1.json GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-730ac5e8-725d-41b6-84fb-118c9dd3efd2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation alloc1.json could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_old_version [0.113837s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?detail=True WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9060d7ba-af0f-4094-afc5-eeb17755008e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill [0.573061s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '0470e1e9-04ee-47ff-ba56-315ce0e265cf', 'owner': None, 'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/0470e1e9-04ee-47ff-ba56-315ce0e265cf Openstack-Request-Id: req-01a285be-ec67-474f-90c0-145729efd846 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "0470e1e9-04ee-47ff-ba56-315ce0e265cf", "created_at": "2025-05-07T22:57:49.120664+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/0470e1e9-04ee-47ff-ba56-315ce0e265cf", "rel": "self"}, {"href": "http://localhost/allocations/0470e1e9-04ee-47ff-ba56-315ce0e265cf", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/allocations/0470e1e9-04ee-47ff-ba56-315ce0e265cf WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-294bc4fd-877b-4514-ac47-c4a52573a480 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "0470e1e9-04ee-47ff-ba56-315ce0e265cf", "created_at": "2025-05-07T22:57:49.120664+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/0470e1e9-04ee-47ff-ba56-315ce0e265cf", "rel": "self"}, {"href": "http://localhost/allocations/0470e1e9-04ee-47ff-ba56-315ce0e265cf", "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( {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node [0.088122s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation GOT Response: 204 No Content Openstack-Request-Id: req-55053f7a-23e5-4917-927f-1fc2e0cd519c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_empty [0.080256s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4ae3e619-5b7f-4c67-9051-c2c69ddfe5a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"chassis": []} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_copy_instance_uuid [0.055782s] ... 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/ea09b43f-4fcb-45b8-96a9-4713957d6eb4 Openstack-Request-Id: req-3db5e623-dbbf-4e6c-be60-78550d8c5af2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ea09b43f-4fcb-45b8-96a9-4713957d6eb4", "created_at": "2025-05-07T22:57:49.187938+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/ea09b43f-4fcb-45b8-96a9-4713957d6eb4", "rel": "self"}, {"href": "http://localhost/allocations/ea09b43f-4fcb-45b8-96a9-4713957d6eb4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/allocations/ea09b43f-4fcb-45b8-96a9-4713957d6eb4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-661d991e-27d6-40dd-95f9-d41ee5e0de61 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ea09b43f-4fcb-45b8-96a9-4713957d6eb4", "created_at": "2025-05-07T22:57:49.187938+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/ea09b43f-4fcb-45b8-96a9-4713957d6eb4", "rel": "self"}, {"href": "http://localhost/allocations/ea09b43f-4fcb-45b8-96a9-4713957d6eb4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_custom_fields [0.062644s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-03997703-7201-4e75-af50-b357cd79aa4e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "dd05d108-a02f-4a23-841e-11387e294f85", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/dd05d108-a02f-4a23-841e-11387e294f85", "rel": "self"}, {"href": "http://localhost/chassis/dd05d108-a02f-4a23-841e-11387e294f85", "rel": "bookmark"}]}, {"uuid": "107ebc39-285f-42b4-ac2b-d37733b3615f", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/107ebc39-285f-42b4-ac2b-d37733b3615f", "rel": "self"}, {"href": "http://localhost/chassis/107ebc39-285f-42b4-ac2b-d37733b3615f", "rel": "bookmark"}]}, {"uuid": "a31772eb-5b0f-44e9-9a76-b15acdfeaacd", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/a31772eb-5b0f-44e9-9a76-b15acdfeaacd", "rel": "self"}, {"href": "http://localhost/chassis/a31772eb-5b0f-44e9-9a76-b15acdfeaacd", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_invalid_api_version [0.080485s] ... 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_allocation.TestPost.test_backfill_node_not_found [0.044469s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '959b2831-ca12-4edc-9783-f804fc53db1f', 'owner': None, 'node': '98200bd7-a6fe-4169-9132-a8fa33302a86'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-99e71338-460e-4e8b-b2a4-fa91acc96bd1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 98200bd7-a6fe-4169-9132-a8fa33302a86 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_not_allowed [0.036542s] ... 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-615ed1c3-4df3-487f-9ef6-0ad0fe26b2b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.57 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot set node when creating an allocation in this API version\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_port_event_invalid_status [0.537676s] ... 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-9a821573-5fb0-45cf-87b2-dbe3e92b137e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['status', 'SHOULD', 'BE', 'TEXT'] is not of type 'string'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_pagination_no_uuid [0.081134s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?fields=extra&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0555e1ca-6e52-4701-8cdd-7b8e68f10078 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"extra": {}, "links": [{"href": "http://localhost/v1/chassis/d0008ff2-433b-42a1-bc43-429d5de56df9", "rel": "self"}, {"href": "http://localhost/chassis/d0008ff2-433b-42a1-bc43-429d5de56df9", "rel": "bookmark"}]}, {"extra": {}, "links": [{"href": "http://localhost/v1/chassis/36e7fbbc-c276-44e2-b136-3e39906f7c30", "rel": "self"}, {"href": "http://localhost/chassis/36e7fbbc-c276-44e2-b136-3e39906f7c30", "rel": "bookmark"}]}], "next": "http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra&limit=2&marker=36e7fbbc-c276-44e2-b136-3e39906f7c30"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node_not_existed [0.071713s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/41238e12-d49e-4d70-9d74-69e69079acea/allocation GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-93f27298-f255-49cb-83b6-6f12cb9c0875 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation for node 41238e12-d49e-4d70-9d74-69e69079acea was not found\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_with_name [0.048476s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '1addc574-3ab7-479e-986d-12a52bea1f93', 'owner': None, 'node': 'backfill-me'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/1addc574-3ab7-479e-986d-12a52bea1f93 Openstack-Request-Id: req-d79b815b-ebcc-41dc-af91-3e2e8812a8a1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1addc574-3ab7-479e-986d-12a52bea1f93", "created_at": "2025-05-07T22:57:49.320158+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/1addc574-3ab7-479e-986d-12a52bea1f93", "rel": "self"}, {"href": "http://localhost/allocations/1addc574-3ab7-479e-986d-12a52bea1f93", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/allocations/1addc574-3ab7-479e-986d-12a52bea1f93 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cf052d95-0d7b-49e8-af45-e5380c86efd6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1addc574-3ab7-479e-986d-12a52bea1f93", "created_at": "2025-05-07T22:57:49.320158+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/1addc574-3ab7-479e-986d-12a52bea1f93", "rel": "self"}, {"href": "http://localhost/allocations/1addc574-3ab7-479e-986d-12a52bea1f93", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_api_version [0.050585s] ... 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-63dd492a-884d-48e8-bc97-513d652a2f18 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_unbind_port_events [0.062335s] ... 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-2d6bcfef-98c4-412b-8e5c-f6906c2974b3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version [0.064085s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/192d3973-4aa0-43cc-88f8-c0716b33ad43 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_allocation.TestPost.test_backfill_without_resource_class [0.058099s] ... 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/3290cc40-6de5-489f-8ed4-aa807a428e43 Openstack-Request-Id: req-8436c2c6-de86-4f51-9335-ecec8cc096dd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "3290cc40-6de5-489f-8ed4-aa807a428e43", "created_at": "2025-05-07T22:57:49.371680+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/3290cc40-6de5-489f-8ed4-aa807a428e43", "rel": "self"}, {"href": "http://localhost/allocations/3290cc40-6de5-489f-8ed4-aa807a428e43", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/allocations/3290cc40-6de5-489f-8ed4-aa807a428e43 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ca7d2012-72c8-4471-8f92-4e9de3f0c093 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "3290cc40-6de5-489f-8ed4-aa807a428e43", "created_at": "2025-05-07T22:57:49.371680+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/3290cc40-6de5-489f-8ed4-aa807a428e43", "rel": "self"}, {"href": "http://localhost/allocations/3290cc40-6de5-489f-8ed4-aa807a428e43", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_fields [0.058837s] ... 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-3d9dac01-ac76-41b2-b25d-4e9509a2c830 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_network_unknown_event_property [0.059442s] ... 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-d164a785-480e-41b0-b7fa-090b0a1c5461 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'port_id' is a required property\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version_without_check [0.055892s] ... 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_allocation.TestPost.test_create_allocation [0.051395s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '57d5f18a-c082-44cf-9716-c53b17144ed1', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/57d5f18a-c082-44cf-9716-c53b17144ed1 Openstack-Request-Id: req-e619219b-6779-4066-b222-f31f3e922c07 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "57d5f18a-c082-44cf-9716-c53b17144ed1", "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/57d5f18a-c082-44cf-9716-c53b17144ed1", "rel": "self"}, {"href": "http://localhost/allocations/57d5f18a-c082-44cf-9716-c53b17144ed1", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/57d5f18a-c082-44cf-9716-c53b17144ed1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-593017b9-4591-4244-8fcc-f4617e9a542c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "57d5f18a-c082-44cf-9716-c53b17144ed1", "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/57d5f18a-c082-44cf-9716-c53b17144ed1", "rel": "self"}, {"href": "http://localhost/allocations/57d5f18a-c082-44cf-9716-c53b17144ed1", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one [0.053301s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-206952b4-eeef-4419-9f52-bfcc98815b5f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-07T22:57:49.450157+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_candidate_node_invalid [0.032902s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': ['this/is/not a/node/name'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '3b5e9b48-8c5e-41af-8da1-766a77fd190d', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a2c5adbb-71b9-4e3c-a8fa-105dc383d142 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: this/is/not a/node/name\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestDelete.test_delete_by_uuid [0.063225s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/inspection_rules/8a3b135e-a356-4612-bdd8-5b4f755c1ffe GOT Response: 204 No Content Openstack-Request-Id: req-979feeaf-c00a-4b87-a947-207cb8af022a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_node [0.063620s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/fda4b942-872b-4ac9-9761-6903af550e89/allocation GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3385025d-2c1f-496f-8ae9-4c52169d7bdc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fda4b942-872b-4ac9-9761-6903af550e89 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestDelete.test_delete_invalid_api_version [0.031202s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/inspection_rules/3d99c6fb-ed3a-4dcf-9198-86666ac539db 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_allocation.TestPost.test_create_allocation_candidate_node_not_found [0.050960s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': ['1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '0c1040de-064a-44a4-a55c-1e5b6bcb8b09', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-27670386-95a2-4859-880e-133ce7c85893 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one_custom_fields [0.071820s] ... 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-cbe16978-85fc-486e-9734-ade51e283a48 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_empty [0.032847s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/inspection_rules WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0241cfde-4e1f-47cc-9bba-23d466c25a08 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"inspection_rules": []} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_doesnt_contain_id [0.039963s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {'foo': 123}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'ace2b213-d8c8-4552-b3a4-b8e263ee232e', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/ace2b213-d8c8-4552-b3a4-b8e263ee232e Openstack-Request-Id: req-a229c576-13a4-4290-9df8-b6dcfe2e8939 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ace2b213-d8c8-4552-b3a4-b8e263ee232e", "created_at": "2025-05-07T22:57:49.560141+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/ace2b213-d8c8-4552-b3a4-b8e263ee232e", "rel": "self"}, {"href": "http://localhost/allocations/ace2b213-d8c8-4552-b3a4-b8e263ee232e", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/ace2b213-d8c8-4552-b3a4-b8e263ee232e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ddba875e-7a1b-41df-a5e5-db253000a93f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ace2b213-d8c8-4552-b3a4-b8e263ee232e", "created_at": "2025-05-07T22:57:49.560141+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/ace2b213-d8c8-4552-b3a4-b8e263ee232e", "rel": "self"}, {"href": "http://localhost/allocations/ace2b213-d8c8-4552-b3a4-b8e263ee232e", "rel": "bookmark"}], "node_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_node_locked [0.079059s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/e2bbd5bf-4e95-48bf-b722-c8c41daaa8f2 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-fab9bcb8-c135-41b6-8492-227bd6a041fe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_all [0.037346s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/inspection_rules WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d0a087aa-9d9c-4ee4-b2b8-7eeb87bd2d24 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"inspection_rules": [{"uuid": "b47130c7-2e23-419e-82eb-e77414a06bf9", "description": "an inspection rule", "priority": 0, "phase": "main", "links": [{"href": "http://localhost/v1/inspection/b47130c7-2e23-419e-82eb-e77414a06bf9", "rel": "self"}, {"href": "http://localhost/inspection/b47130c7-2e23-419e-82eb-e77414a06bf9", "rel": "bookmark"}]}, {"uuid": "1921986c-3fb0-4d7b-bbc0-f530da4dfa27", "description": "an inspection rule", "priority": 0, "phase": "main", "links": [{"href": "http://localhost/v1/inspection/1921986c-3fb0-4d7b-bbc0-f530da4dfa27", "rel": "self"}, {"href": "http://localhost/inspection/1921986c-3fb0-4d7b-bbc0-f530da4dfa27", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_error [0.044435s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'd606ceef-deb2-4e76-90c1-c5d2ae93e21c', 'owner': None} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-06e5aed1-241e-4f1f-9959-b28c79a9c04c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbid_owner_proj_mismatch [0.057552s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?owner=54321 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e8a4c33d-9f17-4ab8-8ca7-078221b97875 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_all_invalid_api_version [0.042722s] ... 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\"}"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_generate_uuid [0.039258s] ... 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/05581f8f-0a90-473f-9ec7-944ec6e67a07 Openstack-Request-Id: req-c0436ae1-627d-40c9-9dde-f98e64ac4cf0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "05581f8f-0a90-473f-9ec7-944ec6e67a07", "created_at": "2025-05-07T22:57:49.644054+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/05581f8f-0a90-473f-9ec7-944ec6e67a07", "rel": "self"}, {"href": "http://localhost/allocations/05581f8f-0a90-473f-9ec7-944ec6e67a07", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/05581f8f-0a90-473f-9ec7-944ec6e67a07 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8f061d77-7cee-4bad-a07d-e5a7b442beec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "05581f8f-0a90-473f-9ec7-944ec6e67a07", "created_at": "2025-05-07T22:57:49.644054+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/05581f8f-0a90-473f-9ec7-944ec6e67a07", "rel": "self"}, {"href": "http://localhost/allocations/05581f8f-0a90-473f-9ec7-944ec6e67a07", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links [0.096217s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/7fe0f84a-5f91-47ac-b923-c6988833bd0a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e2b3a2a3-2420-4408-9664-dfae16332fb8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "7fe0f84a-5f91-47ac-b923-c6988833bd0a", "created_at": "2025-05-07T22:57:49.608057+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/7fe0f84a-5f91-47ac-b923-c6988833bd0a", "rel": "self"}, {"href": "http://localhost/chassis/7fe0f84a-5f91-47ac-b923-c6988833bd0a", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/7fe0f84a-5f91-47ac-b923-c6988833bd0a/nodes", "rel": "self"}, {"href": "http://localhost/chassis/7fe0f84a-5f91-47ac-b923-c6988833bd0a/nodes", "rel": "bookmark"}]]} GET /v1/chassis/7fe0f84a-5f91-47ac-b923-c6988833bd0a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-36e89202-4e17-4f1c-bda5-ca3f463ca8f3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "7fe0f84a-5f91-47ac-b923-c6988833bd0a", "created_at": "2025-05-07T22:57:49.608057+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/7fe0f84a-5f91-47ac-b923-c6988833bd0a", "rel": "self"}, {"href": "http://localhost/chassis/7fe0f84a-5f91-47ac-b923-c6988833bd0a", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/7fe0f84a-5f91-47ac-b923-c6988833bd0a/nodes", "rel": "self"}, {"href": "http://localhost/chassis/7fe0f84a-5f91-47ac-b923-c6988833bd0a/nodes", "rel": "bookmark"}]]} GET /chassis/7fe0f84a-5f91-47ac-b923-c6988833bd0a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2252c7d7-4d47-4fac-94ea-ccc53598a46d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "7fe0f84a-5f91-47ac-b923-c6988833bd0a", "created_at": "2025-05-07T22:57:49.608057+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/7fe0f84a-5f91-47ac-b923-c6988833bd0a", "rel": "self"}, {"href": "http://localhost/chassis/7fe0f84a-5f91-47ac-b923-c6988833bd0a", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/7fe0f84a-5f91-47ac-b923-c6988833bd0a/nodes", "rel": "self"}, {"href": "http://localhost/chassis/7fe0f84a-5f91-47ac-b923-c6988833bd0a/nodes", "rel": "bookmark"}]]} {2} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_one [0.031428s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/inspection_rules/a7f53804-cd5a-435d-ba1d-1b7c197b6e76 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2d3dd023-447c-476a-a6f4-8ca99cd0756f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a7f53804-cd5a-435d-ba1d-1b7c197b6e76", "created_at": "2025-05-07T22:57:49.660503+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/a7f53804-cd5a-435d-ba1d-1b7c197b6e76", "rel": "self"}, {"href": "http://localhost/inspection/a7f53804-cd5a-435d-ba1d-1b7c197b6e76", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbidden [0.056288s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d1ab9995-1001-49a1-b2fd-109b91a990d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_api_version [0.034866s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '17d4de0f-0200-4ace-ad7a-857bf69b7baf', '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\"}"} {2} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_one_invalid_api_version [0.036090s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/inspection_rules/e6824333-3482-4de9-9a47-aedc7c6d3cc9 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\"}"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_candidate_node_format [0.034510s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': ['invalid-format'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '11c62145-2382-4a2c-b570-206a6479f0d6', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-01df6b9a-f738-479a-82db-79a1a24e2181 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: invalid-format\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_forbidden_no_project [0.053842s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-46eb7113-c33c-4ff0-9919-67a24da73758 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.59 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_trait [0.030529s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': ['CUSTOM_GPU', 'FOO_BAR'], 'uuid': '7c218c49-3397-4116-8530-d76b2352a487', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7187cfd2-485a-41ed-9014-8da8a3b1d410 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for allocation: 'FOO_BAR' is not valid under any of the given schemas. Possible root cause: 'FOO_BAR' does not match '^CUSTOM_[A-Z0-9_]+$'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_rule_data [0.048677s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/inspection_rules WITH {'uuid': '2be82c51-90a0-4beb-b18d-56ff091f6aeb', '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/2be82c51-90a0-4beb-b18d-56ff091f6aeb Openstack-Request-Id: req-20f4384c-3521-490a-b7f3-0b5546890f78 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "2be82c51-90a0-4beb-b18d-56ff091f6aeb", "created_at": "2025-05-07T22:57:49.746342+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/2be82c51-90a0-4beb-b18d-56ff091f6aeb", "rel": "self"}, {"href": "http://localhost/inspection/2be82c51-90a0-4beb-b18d-56ff091f6aeb", "rel": "bookmark"}]} GET /v1/inspection_rules/2be82c51-90a0-4beb-b18d-56ff091f6aeb WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9171e18c-bf9a-46c5-be44-c6702e0420a9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "2be82c51-90a0-4beb-b18d-56ff091f6aeb", "created_at": "2025-05-07T22:57:49.746342+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/2be82c51-90a0-4beb-b18d-56ff091f6aeb", "rel": "self"}, {"href": "http://localhost/inspection/2be82c51-90a0-4beb-b18d-56ff091f6aeb", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links_public_url [0.098112s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/c4577d9c-a8d2-4d60-960c-51787d621eb0 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f0c6cdea-79b8-47b1-98fb-a0080c798948 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "c4577d9c-a8d2-4d60-960c-51787d621eb0", "created_at": "2025-05-07T22:57:49.710541+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://foo/v1/chassis/c4577d9c-a8d2-4d60-960c-51787d621eb0", "rel": "self"}, {"href": "http://foo/chassis/c4577d9c-a8d2-4d60-960c-51787d621eb0", "rel": "bookmark"}], "nodes": [[{"href": "http://foo/v1/chassis/c4577d9c-a8d2-4d60-960c-51787d621eb0/nodes", "rel": "self"}, {"href": "http://foo/chassis/c4577d9c-a8d2-4d60-960c-51787d621eb0/nodes", "rel": "bookmark"}]]} GET /v1/chassis/c4577d9c-a8d2-4d60-960c-51787d621eb0 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-83ada554-7404-44bd-9470-7cc210822c3c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "c4577d9c-a8d2-4d60-960c-51787d621eb0", "created_at": "2025-05-07T22:57:49.710541+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://foo/v1/chassis/c4577d9c-a8d2-4d60-960c-51787d621eb0", "rel": "self"}, {"href": "http://foo/chassis/c4577d9c-a8d2-4d60-960c-51787d621eb0", "rel": "bookmark"}], "nodes": [[{"href": "http://foo/v1/chassis/c4577d9c-a8d2-4d60-960c-51787d621eb0/nodes", "rel": "self"}, {"href": "http://foo/chassis/c4577d9c-a8d2-4d60-960c-51787d621eb0/nodes", "rel": "bookmark"}]]} GET /chassis/c4577d9c-a8d2-4d60-960c-51787d621eb0 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f349c2b3-dfd3-4f39-903c-3aa8a85fd310 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "c4577d9c-a8d2-4d60-960c-51787d621eb0", "created_at": "2025-05-07T22:57:49.710541+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://foo/v1/chassis/c4577d9c-a8d2-4d60-960c-51787d621eb0", "rel": "self"}, {"href": "http://foo/chassis/c4577d9c-a8d2-4d60-960c-51787d621eb0", "rel": "bookmark"}], "nodes": [[{"href": "http://foo/v1/chassis/c4577d9c-a8d2-4d60-960c-51787d621eb0/nodes", "rel": "self"}, {"href": "http://foo/chassis/c4577d9c-a8d2-4d60-960c-51787d621eb0/nodes", "rel": "bookmark"}]]} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_invalid [0.035514s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': 'aa:bb_cc', 'resource_class': 'baremetal', 'traits': [], 'uuid': 'ce208ba5-0776-4665-841b-0fd3e1963a8d', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6302a0c3-9c29-4ff8-9801-263576e49fff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create allocation with invalid name 'aa:bb_cc'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_invalid_api_version [0.053939s] ... 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\"}"} {2} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_get_sensitive_rule_hides_data [0.049327s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/inspection_rules WITH {'uuid': '624d55a9-065e-4ed4-9e0f-30948463dcd9', '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/624d55a9-065e-4ed4-9e0f-30948463dcd9 Openstack-Request-Id: req-11b92a51-5fcd-4e48-aa77-6d4fb1a14ec3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "624d55a9-065e-4ed4-9e0f-30948463dcd9", "created_at": "2025-05-07T22:57:49.797059+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/624d55a9-065e-4ed4-9e0f-30948463dcd9", "rel": "self"}, {"href": "http://localhost/inspection/624d55a9-065e-4ed4-9e0f-30948463dcd9", "rel": "bookmark"}]} GET /v1/inspection_rules/624d55a9-065e-4ed4-9e0f-30948463dcd9 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-97f88602-e940-47c8-86ec-b242d3a25de1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "624d55a9-065e-4ed4-9e0f-30948463dcd9", "created_at": "2025-05-07T22:57:49.797059+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/624d55a9-065e-4ed4-9e0f-30948463dcd9", "rel": "self"}, {"href": "http://localhost/inspection/624d55a9-065e-4ed4-9e0f-30948463dcd9", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_ok [0.036044s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': 'foo', 'resource_class': 'baremetal', 'traits': [], 'uuid': '98287503-7805-4cf3-8ec7-c6b02a51cf8f', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/98287503-7805-4cf3-8ec7-c6b02a51cf8f Openstack-Request-Id: req-0eaefff4-417a-423c-9ac7-bf866e2354f3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "98287503-7805-4cf3-8ec7-c6b02a51cf8f", "created_at": "2025-05-07T22:57:49.818862+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/98287503-7805-4cf3-8ec7-c6b02a51cf8f", "rel": "self"}, {"href": "http://localhost/allocations/98287503-7805-4cf3-8ec7-c6b02a51cf8f", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/98287503-7805-4cf3-8ec7-c6b02a51cf8f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6ec561d7-656e-4994-a7f4-78749089819f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "98287503-7805-4cf3-8ec7-c6b02a51cf8f", "created_at": "2025-05-07T22:57:49.818862+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/98287503-7805-4cf3-8ec7-c6b02a51cf8f", "rel": "self"}, {"href": "http://localhost/allocations/98287503-7805-4cf3-8ec7-c6b02a51cf8f", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_many [0.086912s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3088ccfd-72c2-4b4f-8b7f-eea5b0855545 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"chassis": [{"uuid": "4df1199e-c45d-4183-8dfe-64c52cf84b81", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/4df1199e-c45d-4183-8dfe-64c52cf84b81", "rel": "self"}, {"href": "http://localhost/chassis/4df1199e-c45d-4183-8dfe-64c52cf84b81", "rel": "bookmark"}]}, {"uuid": "51eabd67-7ec5-420b-a756-862e42d687b5", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/51eabd67-7ec5-420b-a756-862e42d687b5", "rel": "self"}, {"href": "http://localhost/chassis/51eabd67-7ec5-420b-a756-862e42d687b5", "rel": "bookmark"}]}, {"uuid": "b45f8e82-a067-4152-bd94-f945d70efcc2", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/b45f8e82-a067-4152-bd94-f945d70efcc2", "rel": "self"}, {"href": "http://localhost/chassis/b45f8e82-a067-4152-bd94-f945d70efcc2", "rel": "bookmark"}]}, {"uuid": "264c35af-0020-48d3-b5ae-157fbcdc9c34", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/264c35af-0020-48d3-b5ae-157fbcdc9c34", "rel": "self"}, {"href": "http://localhost/chassis/264c35af-0020-48d3-b5ae-157fbcdc9c34", "rel": "bookmark"}]}, {"uuid": "3dc8e11d-d328-4848-a537-63b175db47e1", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/3dc8e11d-d328-4848-a537-63b175db47e1", "rel": "self"}, {"href": "http://localhost/chassis/3dc8e11d-d328-4848-a537-63b175db47e1", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_no_mandatory_field_resource_class [0.037815s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'traits': [], 'uuid': '9368bb31-5057-457a-a594-420a2a0ce591', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7c5e87d9-0bb6-414f-8e0f-7d44cf5591fc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The resource_class field is mandatory when not backfilling\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_non_admin [0.074795s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-78608782-24a7-416e-9802-6f3521279f33 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"allocations": [{"uuid": "5dd38200-b7b2-42bb-9407-de22a089fff4", "created_at": "2025-05-07T22:57:49.843032+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/5dd38200-b7b2-42bb-9407-de22a089fff4", "rel": "self"}, {"href": "http://localhost/allocations/5dd38200-b7b2-42bb-9407-de22a089fff4", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "51a5cc6a-4a29-4aa8-ad1b-b163cf3b6095", "created_at": "2025-05-07T22:57:49.843837+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/51a5cc6a-4a29-4aa8-ad1b-b163cf3b6095", "rel": "self"}, {"href": "http://localhost/allocations/51a5cc6a-4a29-4aa8-ad1b-b163cf3b6095", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "f9bd83cd-1529-4c1e-b3a1-c5133da8f90e", "created_at": "2025-05-07T22:57:49.846662+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/f9bd83cd-1529-4c1e-b3a1-c5133da8f90e", "rel": "self"}, {"href": "http://localhost/allocations/f9bd83cd-1529-4c1e-b3a1-c5133da8f90e", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "b7766d14-c8b1-4708-b7f0-49bca3fdd98c", "created_at": "2025-05-07T22:57:49.847427+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/b7766d14-c8b1-4708-b7f0-49bca3fdd98c", "rel": "self"}, {"href": "http://localhost/allocations/b7766d14-c8b1-4708-b7f0-49bca3fdd98c", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "4e1a3ad2-6264-4fef-878e-e38b35079ef4", "created_at": "2025-05-07T22:57:49.848164+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/4e1a3ad2-6264-4fef-878e-e38b35079ef4", "rel": "self"}, {"href": "http://localhost/allocations/4e1a3ad2-6264-4fef-878e-e38b35079ef4", "rel": "bookmark"}], "node_uuid": null}]} {2} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_list_hides_sensitive_data [0.081377s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/inspection_rules WITH {'uuid': '02bb92c0-d430-4adf-be8d-d13418fb4cd1', '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/02bb92c0-d430-4adf-be8d-d13418fb4cd1 Openstack-Request-Id: req-199a036e-4a99-41b4-950f-5f202a5e9da0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "02bb92c0-d430-4adf-be8d-d13418fb4cd1", "created_at": "2025-05-07T22:57:49.863171+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/02bb92c0-d430-4adf-be8d-d13418fb4cd1", "rel": "self"}, {"href": "http://localhost/inspection/02bb92c0-d430-4adf-be8d-d13418fb4cd1", "rel": "bookmark"}]} POST /v1/inspection_rules WITH {'uuid': '4c900c6e-048b-47ea-b192-ccdd3ff3d928', '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/4c900c6e-048b-47ea-b192-ccdd3ff3d928 Openstack-Request-Id: req-f2c63578-2351-4079-ab12-bb817ad8477e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "4c900c6e-048b-47ea-b192-ccdd3ff3d928", "created_at": "2025-05-07T22:57:49.878103+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/4c900c6e-048b-47ea-b192-ccdd3ff3d928", "rel": "self"}, {"href": "http://localhost/inspection/4c900c6e-048b-47ea-b192-ccdd3ff3d928", "rel": "bookmark"}]} GET /v1/inspection_rules?detail=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-365a7d7b-538d-4a05-b245-cc9000c377b0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"inspection_rules": [{"uuid": "02bb92c0-d430-4adf-be8d-d13418fb4cd1", "created_at": "2025-05-07T22:57:49.863171+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/02bb92c0-d430-4adf-be8d-d13418fb4cd1", "rel": "self"}, {"href": "http://localhost/inspection/02bb92c0-d430-4adf-be8d-d13418fb4cd1", "rel": "bookmark"}]}, {"uuid": "4c900c6e-048b-47ea-b192-ccdd3ff3d928", "created_at": "2025-05-07T22:57:49.878103+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/4c900c6e-048b-47ea-b192-ccdd3ff3d928", "rel": "self"}, {"href": "http://localhost/inspection/4c900c6e-048b-47ea-b192-ccdd3ff3d928", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner [0.053304s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'f38f7999-10d2-45d8-b8bc-201adb8a6860', 'owner': '12345'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/f38f7999-10d2-45d8-b8bc-201adb8a6860 Openstack-Request-Id: req-c3d8a562-58d6-49fb-88f2-85dbae3b9a1d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f38f7999-10d2-45d8-b8bc-201adb8a6860", "created_at": "2025-05-07T22:57:49.908878+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/f38f7999-10d2-45d8-b8bc-201adb8a6860", "rel": "self"}, {"href": "http://localhost/allocations/f38f7999-10d2-45d8-b8bc-201adb8a6860", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/f38f7999-10d2-45d8-b8bc-201adb8a6860 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1c26f3af-aedb-4628-aea6-6c125ee3086a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f38f7999-10d2-45d8-b8bc-201adb8a6860", "created_at": "2025-05-07T22:57:49.908878+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/f38f7999-10d2-45d8-b8bc-201adb8a6860", "rel": "self"}, {"href": "http://localhost/allocations/f38f7999-10d2-45d8-b8bc-201adb8a6860", "rel": "bookmark"}], "node_uuid": null} {2} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestListInspectionRules.test_one [0.030128s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/inspection_rules WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3d3c22a1-e49e-4ea2-aff4-fb022fc5bce5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"inspection_rules": [{"uuid": "d2473f29-b9b9-453b-89ae-9ed8519ad7bb", "description": "an inspection rule", "priority": 0, "phase": "main", "links": [{"href": "http://localhost/v1/inspection/d2473f29-b9b9-453b-89ae-9ed8519ad7bb", "rel": "self"}, {"href": "http://localhost/inspection/d2473f29-b9b9-453b-89ae-9ed8519ad7bb", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestPatch.test_patch_invalid_api_version [0.026376s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/inspection_rules/d424d242-8527-48f6-8945-1012a561efe3 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\"}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_hidden_in_lower_version [0.078670s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/46f53776-8c85-4830-87e5-fbe90674de4a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ed1cfe96-aa22-47be-8396-9d33b44d5241 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.59 {"uuid": "46f53776-8c85-4830-87e5-fbe90674de4a", "created_at": "2025-05-07T22:57:49.918519+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/46f53776-8c85-4830-87e5-fbe90674de4a", "rel": "self"}, {"href": "http://localhost/allocations/46f53776-8c85-4830-87e5-fbe90674de4a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/allocations/46f53776-8c85-4830-87e5-fbe90674de4a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-34feac5f-4f13-4051-a314-43596ab689d8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "46f53776-8c85-4830-87e5-fbe90674de4a", "created_at": "2025-05-07T22:57:49.918519+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/46f53776-8c85-4830-87e5-fbe90674de4a", "rel": "self"}, {"href": "http://localhost/allocations/46f53776-8c85-4830-87e5-fbe90674de4a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_auto_filled [0.038133s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '108020f2-b560-4163-a23d-c16b8407dfe1', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/108020f2-b560-4163-a23d-c16b8407dfe1 Openstack-Request-Id: req-0dcaf5ed-3939-45e8-9c04-7c0a72552fdd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "108020f2-b560-4163-a23d-c16b8407dfe1", "created_at": "2025-05-07T22:57:49.948026+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/108020f2-b560-4163-a23d-c16b8407dfe1", "rel": "self"}, {"href": "http://localhost/allocations/108020f2-b560-4163-a23d-c16b8407dfe1", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/108020f2-b560-4163-a23d-c16b8407dfe1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c2a5e680-96b4-4a37-9067-95023d41e436 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "108020f2-b560-4163-a23d-c16b8407dfe1", "created_at": "2025-05-07T22:57:49.948026+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/108020f2-b560-4163-a23d-c16b8407dfe1", "rel": "self"}, {"href": "http://localhost/allocations/108020f2-b560-4163-a23d-c16b8407dfe1", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource [0.135550s] ... 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-c525f579-a3c6-40a5-b94c-2057a10bc599 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "67bac0ef-fa13-4cd3-95d7-b09d4644eee6", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/67bac0ef-fa13-4cd3-95d7-b09d4644eee6", "rel": "self"}, {"href": "http://localhost/nodes/67bac0ef-fa13-4cd3-95d7-b09d4644eee6", "rel": "bookmark"}]}, {"uuid": "faf9e6b2-8041-4fb9-a710-bbf5676a7285", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/faf9e6b2-8041-4fb9-a710-bbf5676a7285", "rel": "self"}, {"href": "http://localhost/nodes/faf9e6b2-8041-4fb9-a710-bbf5676a7285", "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-22faa06e-f46f-4be4-8fed-5540e02ae69b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "67bac0ef-fa13-4cd3-95d7-b09d4644eee6", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/67bac0ef-fa13-4cd3-95d7-b09d4644eee6", "rel": "self"}, {"href": "http://localhost/nodes/67bac0ef-fa13-4cd3-95d7-b09d4644eee6", "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=67bac0ef-fa13-4cd3-95d7-b09d4644eee6"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_not_allowed [0.035766s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '53c8b53f-74a0-4caf-9488-3c2d89d960c2', 'owner': '12345'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-36207013-d2f7-45a7-9eba-1e28ea310337 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.59 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_null_field [0.064817s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/558f4b7e-a4ba-4a18-8297-f99fd25d529f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1617b87c-5980-41c2-afa3-63c140fef546 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "558f4b7e-a4ba-4a18-8297-f99fd25d529f", "created_at": "2025-05-07T22:57:49.997845+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/558f4b7e-a4ba-4a18-8297-f99fd25d529f", "rel": "self"}, {"href": "http://localhost/allocations/558f4b7e-a4ba-4a18-8297-f99fd25d529f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestPatch.test_set_sensitive_field [0.074003s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/inspection_rules WITH {'uuid': '125e3ad7-4af1-418d-9da6-39049b39b60c', '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/125e3ad7-4af1-418d-9da6-39049b39b60c Openstack-Request-Id: req-459ade75-5265-450c-bb80-e02abf3d3a0c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "125e3ad7-4af1-418d-9da6-39049b39b60c", "created_at": "2025-05-07T22:57:49.989588+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/125e3ad7-4af1-418d-9da6-39049b39b60c", "rel": "self"}, {"href": "http://localhost/inspection/125e3ad7-4af1-418d-9da6-39049b39b60c", "rel": "bookmark"}]} PATCH /v1/inspection_rules/125e3ad7-4af1-418d-9da6-39049b39b60c WITH [{'op': 'replace', 'path': '/sensitive', 'value': True}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e8669bd7-9e8f-407e-8b03-7f7eb85d18aa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "125e3ad7-4af1-418d-9da6-39049b39b60c", "created_at": "2025-05-07T22:57:49.989588+00:00", "updated_at": "2025-05-07T22:57:50.014331+00:00", "description": "an inspection rule", "priority": 0, "sensitive": true, "phase": "main", "conditions": null, "actions": null, "links": [{"href": "http://localhost/v1/inspection/125e3ad7-4af1-418d-9da6-39049b39b60c", "rel": "self"}, {"href": "http://localhost/inspection/125e3ad7-4af1-418d-9da6-39049b39b60c", "rel": "bookmark"}]} PATCH /v1/inspection_rules/125e3ad7-4af1-418d-9da6-39049b39b60c WITH [{'op': 'replace', 'path': '/sensitive', 'value': False}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bbd45ea8-d14e-4f95-9b12-449f020f82a2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'op': 'replace', 'path': '/sensitive', 'value': False}]'. Reason: Inspection rules cannot have the sensitive flag unset.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_not_my_projet_id [0.037045s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '085a6cb0-d8ae-4d95-8f97-8f592ce39fb9', 'owner': '12345'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9b24e3ac-fb32-4597-a9e1-5f21a6b00c43 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create allocation with an owner Project ID value 12345 not matching the requester Project ID 0987. Policy baremetal:allocation:create_restricted is required for this capability.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_chassis_not_found [0.077359s] ... 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-5eb81980-f57f-4c72-acac-21b789188996 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_resource_class_too_long [0.045310s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'traits': [], 'uuid': '6434ca62-6495-4ade-90f4-0b13f87bc2d9', 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b1d9b007-f773-41af-a24c-7bb5a6064724 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for allocation: 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' is too long\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_present [0.066152s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/8d4270a7-9773-45ec-9f2a-6e09b8d428c1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-220c41e2-d513-45bd-b48a-ef6f4b6f927b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "8d4270a7-9773-45ec-9f2a-6e09b8d428c1", "created_at": "2025-05-07T22:57:50.065405+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/8d4270a7-9773-45ec-9f2a-6e09b8d428c1", "rel": "self"}, {"href": "http://localhost/allocations/8d4270a7-9773-45ec-9f2a-6e09b8d428c1", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios [0.072282s] ... 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-247774a1-fbcb-431d-b240-c99c33fed833 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.74 {"bios": [{"created_at": "2025-05-07T22:57:50.078298+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"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_valid_extra [0.057453s] ... 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': '0bae9bd9-369d-4dee-9f6d-2094eec2f5b8', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/0bae9bd9-369d-4dee-9f6d-2094eec2f5b8 Openstack-Request-Id: req-bc3fe1cc-ff7d-479a-a1ec-d83fff9b40d2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "0bae9bd9-369d-4dee-9f6d-2094eec2f5b8", "created_at": "2025-05-07T22:57:50.126798+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/0bae9bd9-369d-4dee-9f6d-2094eec2f5b8", "rel": "self"}, {"href": "http://localhost/allocations/0bae9bd9-369d-4dee-9f6d-2094eec2f5b8", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/0bae9bd9-369d-4dee-9f6d-2094eec2f5b8 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bd561af5-7272-46b2-8bb4-a18dae456218 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "0bae9bd9-369d-4dee-9f6d-2094eec2f5b8", "created_at": "2025-05-07T22:57:50.126798+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/0bae9bd9-369d-4dee-9f6d-2094eec2f5b8", "rel": "self"}, {"href": "http://localhost/allocations/0bae9bd9-369d-4dee-9f6d-2094eec2f5b8", "rel": "bookmark"}], "node_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_invalid_node [0.055922s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/node/9e112dbd-ae96-4282-9648-11afe8023b99/allocation WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_detail_false [0.046303s] ... 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-bff2bea0-31fb-4dd6-bf79-df99f6fbbd75 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.74 {"bios": [{"created_at": "2025-05-07T22:57:50.132370+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"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_candidate_nodes [0.054381s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': ['node-1', '7d595eee-df98-43ff-8ec9-827deda3c4f1'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '0ab9609b-95ea-4b1b-9f88-e4f0dd8e0ed7', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/0ab9609b-95ea-4b1b-9f88-e4f0dd8e0ed7 Openstack-Request-Id: req-a9b1f2af-e5d4-41ba-a135-d92809dea53b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "0ab9609b-95ea-4b1b-9f88-e4f0dd8e0ed7", "created_at": "2025-05-07T22:57:50.179827+00:00", "updated_at": null, "candidate_nodes": ["1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "7d595eee-df98-43ff-8ec9-827deda3c4f1"], "extra": {}, "last_error": null, "name": null, "owner": "0987", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/0ab9609b-95ea-4b1b-9f88-e4f0dd8e0ed7", "rel": "self"}, {"href": "http://localhost/allocations/0ab9609b-95ea-4b1b-9f88-e4f0dd8e0ed7", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/0ab9609b-95ea-4b1b-9f88-e4f0dd8e0ed7 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-20ea0339-b774-4b88-ad5e-d8efbc979ec8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "0ab9609b-95ea-4b1b-9f88-e4f0dd8e0ed7", "created_at": "2025-05-07T22:57:50.179827+00:00", "updated_at": null, "candidate_nodes": ["1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "7d595eee-df98-43ff-8ec9-827deda3c4f1"], "extra": {}, "last_error": null, "name": null, "owner": "0987", "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/0ab9609b-95ea-4b1b-9f88-e4f0dd8e0ed7", "rel": "self"}, {"href": "http://localhost/allocations/0ab9609b-95ea-4b1b-9f88-e4f0dd8e0ed7", "rel": "bookmark"}], "node_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_by_node_resource_not_existed [0.055849s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/node/b6d96503-6bce-4934-b0a1-e6bfb8b6e86c/allocation WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_detail_old_version [0.052536s] ... 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-a21d0b62-38aa-4ba1-beb0-3a3805a37415 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.73 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_no_extra [0.039311s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '66e2929d-6cd9-46ef-b1b5-988ab6a3a297', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/66e2929d-6cd9-46ef-b1b5-988ab6a3a297 Openstack-Request-Id: req-1bb483d8-6498-44bf-90ba-ab0fa9ca9966 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "66e2929d-6cd9-46ef-b1b5-988ab6a3a297", "created_at": "2025-05-07T22:57:50.224790+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/66e2929d-6cd9-46ef-b1b5-988ab6a3a297", "rel": "self"}, {"href": "http://localhost/allocations/66e2929d-6cd9-46ef-b1b5-988ab6a3a297", "rel": "bookmark"}], "node_uuid": null} {2} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_fails_with_bad_version [0.038038s] ... 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\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links [0.072914s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-14e7acae-d85b-4905-b2c2-b366fdde61f9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "393f3dd4-8a89-4583-b21d-6e7848cafbe1", "created_at": "2025-05-07T22:57:50.248142+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/393f3dd4-8a89-4583-b21d-6e7848cafbe1", "rel": "self"}, {"href": "http://localhost/allocations/393f3dd4-8a89-4583-b21d-6e7848cafbe1", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "33828be2-e1e8-44ac-a744-1ec9eea8b64a", "created_at": "2025-05-07T22:57:50.248993+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/33828be2-e1e8-44ac-a744-1ec9eea8b64a", "rel": "self"}, {"href": "http://localhost/allocations/33828be2-e1e8-44ac-a744-1ec9eea8b64a", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "28047e50-fde5-4158-a448-1869f97c6935", "created_at": "2025-05-07T22:57:50.251844+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/28047e50-fde5-4158-a448-1869f97c6935", "rel": "self"}, {"href": "http://localhost/allocations/28047e50-fde5-4158-a448-1869f97c6935", "rel": "bookmark"}], "node_uuid": null}], "next": "http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=28047e50-fde5-4158-a448-1869f97c6935"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_with_traits [0.048473s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': ['CUSTOM_GPU', 'CUSTOM_FOO_BAR'], 'uuid': '2ca5b8e0-9688-4fd5-a4e7-84167b2b12c3', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/2ca5b8e0-9688-4fd5-a4e7-84167b2b12c3 Openstack-Request-Id: req-55280fc3-3fa3-4d37-ab97-d239b04a772d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "2ca5b8e0-9688-4fd5-a4e7-84167b2b12c3", "created_at": "2025-05-07T22:57:50.264057+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/2ca5b8e0-9688-4fd5-a4e7-84167b2b12c3", "rel": "self"}, {"href": "http://localhost/allocations/2ca5b8e0-9688-4fd5-a4e7-84167b2b12c3", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/2ca5b8e0-9688-4fd5-a4e7-84167b2b12c3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3971d3e5-22ba-4b98-b7b9-ea65900b325d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "2ca5b8e0-9688-4fd5-a4e7-84167b2b12c3", "created_at": "2025-05-07T22:57:50.264057+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/2ca5b8e0-9688-4fd5-a4e7-84167b2b12c3", "rel": "self"}, {"href": "http://localhost/allocations/2ca5b8e0-9688-4fd5-a4e7-84167b2b12c3", "rel": "bookmark"}], "node_uuid": null} {2} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_with_detail [0.047155s] ... 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-3434e164-2158-4bfa-be9b-35966d27711f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.74 {"bios": [{"created_at": "2025-05-07T22:57:50.272328+00:00", "updated_at": null, "name": "virtualization", "value": "on", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_by_node_not_allowed [0.040612s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'c493eaf0-8dc2-4742-a767-9fa8bc66b241', 'owner': None} GOT Response: 405 Method Not Allowed Allow: DELETE, GET Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_detail_and_fields [0.046245s] ... 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-e1504e5b-5160-4291-871a-72483a34d472 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.74 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid detail: Unrecognized value 'True?fields=name,read_only', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_node_uuid_not_allowed [0.045982s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '71006102-b7f6-4c4a-8aed-3a0166e9fddf', 'owner': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2d30366c-65cb-4342-9958-977e93e44944 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for allocation: Additional properties are not allowed ('node_uuid' was unexpected)\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_custom_fields [0.096355s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b9c57768-5622-4db7-b021-cf1285a813dd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "fd129b96-768c-4de7-b33f-0b8108e4fd24", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/fd129b96-768c-4de7-b33f-0b8108e4fd24", "rel": "self"}, {"href": "http://localhost/allocations/fd129b96-768c-4de7-b33f-0b8108e4fd24", "rel": "bookmark"}]}, {"uuid": "c1de79b1-aa4b-4118-8d16-2e66dc03839f", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/c1de79b1-aa4b-4118-8d16-2e66dc03839f", "rel": "self"}, {"href": "http://localhost/allocations/c1de79b1-aa4b-4118-8d16-2e66dc03839f", "rel": "bookmark"}]}, {"uuid": "08fc8ffb-09a5-41dc-88b1-f4ffc5245324", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/08fc8ffb-09a5-41dc-88b1-f4ffc5245324", "rel": "self"}, {"href": "http://localhost/allocations/08fc8ffb-09a5-41dc-88b1-f4ffc5245324", "rel": "bookmark"}]}], "next": "http://localhost/v1/allocations?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=08fc8ffb-09a5-41dc-88b1-f4ffc5245324"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_fields [0.053360s] ... 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-4485aa93-93de-4c6b-9a2b-50401daaddb1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.74 {"bios": [{"created_at": "2025-05-07T22:57:50.369932+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"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_deprecated_without_owner [0.039029s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '6375a817-d0d4-444f-84fe-c0e34243c008', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/6375a817-d0d4-444f-84fe-c0e34243c008 Openstack-Request-Id: req-606dd5c8-927c-43c0-a41f-6f26aec4fa3d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "6375a817-d0d4-444f-84fe-c0e34243c008", "created_at": "2025-05-07T22:57:50.397326+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/6375a817-d0d4-444f-84fe-c0e34243c008", "rel": "self"}, {"href": "http://localhost/allocations/6375a817-d0d4-444f-84fe-c0e34243c008", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/6375a817-d0d4-444f-84fe-c0e34243c008 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d9b16c4a-a014-4060-a8e5-f06d24325dbc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "6375a817-d0d4-444f-84fe-c0e34243c008", "created_at": "2025-05-07T22:57:50.397326+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/6375a817-d0d4-444f-84fe-c0e34243c008", "rel": "self"}, {"href": "http://localhost/allocations/6375a817-d0d4-444f-84fe-c0e34243c008", "rel": "bookmark"}], "node_uuid": null} {2} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_fields_old_version [0.035852s] ... 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-39f0dfad-d6b8-467a-9ad1-821fa67bbe5f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.73 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?fields=['name', 'read_only'] received.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_forbidden [0.029629s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'c4644049-0e5a-4564-a6ae-314da346409a', 'owner': None} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5446def2-3817-4069-abf1-a53748d83e33 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links_default_limit [0.069815s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7a8f16ec-d77a-4466-a31a-96540f9f75e5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "ea96ebb1-9193-4749-8460-77314f085939", "created_at": "2025-05-07T22:57:50.419136+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/ea96ebb1-9193-4749-8460-77314f085939", "rel": "self"}, {"href": "http://localhost/allocations/ea96ebb1-9193-4749-8460-77314f085939", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "77425d32-0d28-41d4-9728-c94e3e114744", "created_at": "2025-05-07T22:57:50.419986+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/77425d32-0d28-41d4-9728-c94e3e114744", "rel": "self"}, {"href": "http://localhost/allocations/77425d32-0d28-41d4-9728-c94e3e114744", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "1f74d0b6-445b-442c-ab90-e13f079a8100", "created_at": "2025-05-07T22:57:50.420808+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/1f74d0b6-445b-442c-ab90-e13f079a8100", "rel": "self"}, {"href": "http://localhost/allocations/1f74d0b6-445b-442c-ab90-e13f079a8100", "rel": "bookmark"}], "node_uuid": null}], "next": "http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=1f74d0b6-445b-442c-ab90-e13f079a8100"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios [0.075616s] ... 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-96451b67-339b-447c-aeba-11cb95cebfa8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.74 {"virtualization": {"created_at": "2025-05-07T22:57:50.471359+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"}]}} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_empty [0.083820s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-20a255b7-ccc0-45dd-83c7-f2b7e87ed623 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": []} {2} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_if_not_found [0.082302s] ... 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-fe7cd187-a4f6-4074-b00f-ad3bc83dc992 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.74 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 doesn't have a BIOS setting 'fake_setting'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_name [0.102520s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?node=node-1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-40db9b5a-1023-4199-8207-e8662bb3b4a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "c5740127-f11b-4506-821f-4f7551a57ef6", "created_at": "2025-05-07T22:57:50.571150+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/c5740127-f11b-4506-821f-4f7551a57ef6", "rel": "self"}, {"href": "http://localhost/allocations/c5740127-f11b-4506-821f-4f7551a57ef6", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "66c8ecc0-6e7a-434c-9257-8b81841cfa1e", "created_at": "2025-05-07T22:57:50.575176+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/66c8ecc0-6e7a-434c-9257-8b81841cfa1e", "rel": "self"}, {"href": "http://localhost/allocations/66c8ecc0-6e7a-434c-9257-8b81841cfa1e", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "8d9176e3-02e5-452a-8983-b5a93ac17da8", "created_at": "2025-05-07T22:57:50.575966+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/8d9176e3-02e5-452a-8983-b5a93ac17da8", "rel": "self"}, {"href": "http://localhost/allocations/8d9176e3-02e5-452a-8983-b5a93ac17da8", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_link [0.598079s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9a1c8e9d-2758-404e-b720-73eed06ab75b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-07T22:57:50.661192+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_with_bad_version [0.070003s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_normal [0.257212s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '26081939-aa9e-4d80-8a36-a705b3d00060', 'owner': None} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/26081939-aa9e-4d80-8a36-a705b3d00060 Openstack-Request-Id: req-3b8b3764-d557-485f-b34c-044e02d61e1a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "26081939-aa9e-4d80-8a36-a705b3d00060", "created_at": "2025-05-07T22:57:50.685641+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/26081939-aa9e-4d80-8a36-a705b3d00060", "rel": "self"}, {"href": "http://localhost/allocations/26081939-aa9e-4d80-8a36-a705b3d00060", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/26081939-aa9e-4d80-8a36-a705b3d00060 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4cf4817a-d176-4b53-907e-c2c11f93a2dc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "26081939-aa9e-4d80-8a36-a705b3d00060", "created_at": "2025-05-07T22:57:50.685641+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/26081939-aa9e-4d80-8a36-a705b3d00060", "rel": "self"}, {"href": "http://localhost/allocations/26081939-aa9e-4d80-8a36-a705b3d00060", "rel": "bookmark"}], "node_uuid": null} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_node_uuid [0.071801s] ... 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-fba5b204-5f7e-4b6e-957e-cf8854d1b804 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "7f64909e-c9c9-4d76-a0d6-df9f652cb024", "created_at": "2025-05-07T22:57:50.679128+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/7f64909e-c9c9-4d76-a0d6-df9f652cb024", "rel": "self"}, {"href": "http://localhost/allocations/7f64909e-c9c9-4d76-a0d6-df9f652cb024", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_no_uuid [0.034556s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/nodes WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f6dfe5e5-58da-4631-b008-c37a84c659bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis id not specified.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_one [0.037767s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c84afe0f-1ad7-4a14-af23-a192d98ea8cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_older_version [0.049285s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '43868196-2005-48b4-94c7-b81525e97015'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/43868196-2005-48b4-94c7-b81525e97015 Openstack-Request-Id: req-a9ad915e-1a7c-4197-be51-fb47d831066b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.59 {"uuid": "43868196-2005-48b4-94c7-b81525e97015", "created_at": "2025-05-07T22:57:50.725824+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/43868196-2005-48b4-94c7-b81525e97015", "rel": "self"}, {"href": "http://localhost/allocations/43868196-2005-48b4-94c7-b81525e97015", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/43868196-2005-48b4-94c7-b81525e97015 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-677f3595-08f1-4225-8727-e58581497e81 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.59 {"uuid": "43868196-2005-48b4-94c7-b81525e97015", "created_at": "2025-05-07T22:57:50.725824+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/43868196-2005-48b4-94c7-b81525e97015", "rel": "self"}, {"href": "http://localhost/allocations/43868196-2005-48b4-94c7-b81525e97015", "rel": "bookmark"}], "node_uuid": null} {2} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_no_registry [0.074948s] ... 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-cc81c5d0-8f78-47d4-883d-26a59d608d42 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.73 {"virtualization": {"created_at": "2025-05-07T22:57:50.726366+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"}]}} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_with_mismatch_owner [0.042291s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'ae402b50-3d8c-42f9-a060-7d8ef6182cca', 'owner': '54321'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-825ff0eb-1a58-40e1-89bc-d09bc2d70a28 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key [0.051539s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-15853a04-c314-417a-b3c8-fe311c83df09 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"chassis": [{"uuid": "441d71cc-4e35-478e-b90b-285b8cd32dec", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/441d71cc-4e35-478e-b90b-285b8cd32dec", "rel": "self"}, {"href": "http://localhost/chassis/441d71cc-4e35-478e-b90b-285b8cd32dec", "rel": "bookmark"}]}, {"uuid": "4a621ea2-df24-4ad2-98fa-a824b13af149", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/4a621ea2-df24-4ad2-98fa-a824b13af149", "rel": "self"}, {"href": "http://localhost/chassis/4a621ea2-df24-4ad2-98fa-a824b13af149", "rel": "bookmark"}]}, {"uuid": "e4a33e30-aae1-4981-9b85-2fc53728a634", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e4a33e30-aae1-4981-9b85-2fc53728a634", "rel": "self"}, {"href": "http://localhost/chassis/e4a33e30-aae1-4981-9b85-2fc53728a634", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_with_owner [0.038060s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '98e66be4-21b3-478b-9153-2d6a3a25aca9', 'owner': '12345'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/98e66be4-21b3-478b-9153-2d6a3a25aca9 Openstack-Request-Id: req-73c8e585-5098-4175-831e-4286e61ca3d4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "98e66be4-21b3-478b-9153-2d6a3a25aca9", "created_at": "2025-05-07T22:57:50.816855+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/98e66be4-21b3-478b-9153-2d6a3a25aca9", "rel": "self"}, {"href": "http://localhost/allocations/98e66be4-21b3-478b-9153-2d6a3a25aca9", "rel": "bookmark"}], "node_uuid": null} GET /v1/allocations/98e66be4-21b3-478b-9153-2d6a3a25aca9 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-274ec504-8c53-4d52-b71d-10e1c2768fbd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "98e66be4-21b3-478b-9153-2d6a3a25aca9", "created_at": "2025-05-07T22:57:50.816855+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/98e66be4-21b3-478b-9153-2d6a3a25aca9", "rel": "self"}, {"href": "http://localhost/allocations/98e66be4-21b3-478b-9153-2d6a3a25aca9", "rel": "bookmark"}], "node_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key_invalid [0.064118s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-895cfb23-5637-465d-9cf2-134f915a7170 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/chassis?sort_key=extra WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3ed772e1-511c-46e5-a719-8a0155c99b81 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_get_child_node [0.091201s] ... 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-b7d3f351-d581-46f3-a1f3-20d108f944d2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"children": ["3bc95b7a-300d-40f3-b77d-bc147dec6089"], "links": {"href": "http://localhost/v1/nodes?parent_node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "children"}} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_multi [0.050248s] ... 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-2fb1d22a-3d40-4024-8ec9-b8825a22493f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-07T22:57:50.851183+00:00", "updated_at": "2025-05-07T22:57:50.864026+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-56d19eb6-ae32-4752-b8f8-3eae3619a3a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-07T22:57:50.851183+00:00", "updated_at": "2025-05-07T22:57:50.864026+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"}]]} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root [0.035100s] ... 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-e20e489c-0e10-4c73-900c-5de56d81ef44 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-07T22:57:50.897393+00:00", "updated_at": "2025-05-07T22:57:50.906398+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_collection.TestCollection.test_get_next [0.061530s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_has_next [0.023025s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_node_children_by_single_node [0.084658s] ... 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-2b2eabb3-cd8a-4c5e-b918-15c059623d5b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"children": ["da5e944d-1509-4210-b53e-54b1f3fdc28e", "c4f7ca10-7fb2-4c14-b04e-28f2dd775505"], "links": {"href": "http://localhost/v1/nodes?parent_node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "children"}} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root_non_existent [0.038233s] ... 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-2ca7c617-73a5-44c5-b424-a7581a18d143 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: uuid, extra, description\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_collection.TestCollection.test_list_convert_with_links [0.021410s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_patch_nodes_subresource [0.044373s] ... 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-117b95f5-6a42-4e0b-974f-4377d92386bf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links [0.069932s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-10e28e02-0ee8-49c0-a8fc-d435212389d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": [{"hostname": "8ad3cb59-1d1d-481d-8bd1-c9d2e991efae", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/8ad3cb59-1d1d-481d-8bd1-c9d2e991efae", "rel": "self"}, {"href": "http://localhost/conductors/8ad3cb59-1d1d-481d-8bd1-c9d2e991efae", "rel": "bookmark"}], "alive": true}, {"hostname": "91296791-7884-4409-9171-afdd4afc8992", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/91296791-7884-4409-9171-afdd4afc8992", "rel": "self"}, {"href": "http://localhost/conductors/91296791-7884-4409-9171-afdd4afc8992", "rel": "bookmark"}], "alive": true}, {"hostname": "3cb4389e-74e1-42f7-96c7-ef10d8e615ec", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/3cb4389e-74e1-42f7-96c7-ef10d8e615ec", "rel": "self"}, {"href": "http://localhost/conductors/3cb4389e-74e1-42f7-96c7-ef10d8e615ec", "rel": "bookmark"}], "alive": true}], "next": "http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=3cb4389e-74e1-42f7-96c7-ef10d8e615ec"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_multi [0.051868s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/28b1b7da-e836-4cc2-811f-7b4e931878d7 WITH [{'path': '/extra/foo2', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3c74a767-33ac-4611-918f-2a50f3cebc48 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "28b1b7da-e836-4cc2-811f-7b4e931878d7", "created_at": "2025-05-07T22:57:51.019371+00:00", "updated_at": "2025-05-07T22:57:51.027529+00:00", "description": "foobar", "extra": {"foo1": "bar1", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/28b1b7da-e836-4cc2-811f-7b4e931878d7", "rel": "self"}, {"href": "http://localhost/chassis/28b1b7da-e836-4cc2-811f-7b4e931878d7", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/28b1b7da-e836-4cc2-811f-7b4e931878d7/nodes", "rel": "self"}, {"href": "http://localhost/chassis/28b1b7da-e836-4cc2-811f-7b4e931878d7/nodes", "rel": "bookmark"}]]} GET /v1/chassis/28b1b7da-e836-4cc2-811f-7b4e931878d7 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-743b509b-4165-4810-b828-3c5b167d1137 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "28b1b7da-e836-4cc2-811f-7b4e931878d7", "created_at": "2025-05-07T22:57:51.019371+00:00", "updated_at": "2025-05-07T22:57:51.027529+00:00", "description": "foobar", "extra": {"foo1": "bar1", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/28b1b7da-e836-4cc2-811f-7b4e931878d7", "rel": "self"}, {"href": "http://localhost/chassis/28b1b7da-e836-4cc2-811f-7b4e931878d7", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/28b1b7da-e836-4cc2-811f-7b4e931878d7/nodes", "rel": "self"}, {"href": "http://localhost/chassis/28b1b7da-e836-4cc2-811f-7b4e931878d7/nodes", "rel": "bookmark"}]]} PATCH /v1/chassis/28b1b7da-e836-4cc2-811f-7b4e931878d7 WITH [{'path': '/extra', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-30cdf2ed-c1dc-43c5-bb23-02853df6f18b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "28b1b7da-e836-4cc2-811f-7b4e931878d7", "created_at": "2025-05-07T22:57:51.019371+00:00", "updated_at": "2025-05-07T22:57:51.040235+00:00", "description": "foobar", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/28b1b7da-e836-4cc2-811f-7b4e931878d7", "rel": "self"}, {"href": "http://localhost/chassis/28b1b7da-e836-4cc2-811f-7b4e931878d7", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/28b1b7da-e836-4cc2-811f-7b4e931878d7/nodes", "rel": "self"}, {"href": "http://localhost/chassis/28b1b7da-e836-4cc2-811f-7b4e931878d7/nodes", "rel": "bookmark"}]]} GET /v1/chassis/28b1b7da-e836-4cc2-811f-7b4e931878d7 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7c135d08-789f-428a-ab91-525f2f04294d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "28b1b7da-e836-4cc2-811f-7b4e931878d7", "created_at": "2025-05-07T22:57:51.019371+00:00", "updated_at": "2025-05-07T22:57:51.040235+00:00", "description": "foobar", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/28b1b7da-e836-4cc2-811f-7b4e931878d7", "rel": "self"}, {"href": "http://localhost/chassis/28b1b7da-e836-4cc2-811f-7b4e931878d7", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/28b1b7da-e836-4cc2-811f-7b4e931878d7/nodes", "rel": "self"}, {"href": "http://localhost/chassis/28b1b7da-e836-4cc2-811f-7b4e931878d7/nodes", "rel": "bookmark"}]]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes [0.117935s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6713fde1-5db8-430a-adb3-0a9139c7c6e5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "din", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_non_existent_property_fail [0.034404s] ... 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-ff740ede-c6b8-4152-8462-d9f3a05c5505 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove a non-existent object 'non-existent'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_non_existing_node [0.383457s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?node=banana WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c11a7382-f555-4181-8b3d-23fdb561a6d8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node banana could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links_custom_fields [0.090175s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors?fields=hostname,alive WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1901146d-0eeb-4ab4-8212-2ead011bfda4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": [{"hostname": "07dec674-936c-48f6-877f-bc0c0b7e8a66", "links": [{"href": "http://localhost/v1/conductors/07dec674-936c-48f6-877f-bc0c0b7e8a66", "rel": "self"}, {"href": "http://localhost/conductors/07dec674-936c-48f6-877f-bc0c0b7e8a66", "rel": "bookmark"}], "alive": true}, {"hostname": "b02c9ac3-d35d-45df-845e-ec476ab3aba8", "links": [{"href": "http://localhost/v1/conductors/b02c9ac3-d35d-45df-845e-ec476ab3aba8", "rel": "self"}, {"href": "http://localhost/conductors/b02c9ac3-d35d-45df-845e-ec476ab3aba8", "rel": "bookmark"}], "alive": true}, {"hostname": "374a648d-1229-443e-baf4-3364c944bbe7", "links": [{"href": "http://localhost/v1/conductors/374a648d-1229-443e-baf4-3364c944bbe7", "rel": "self"}, {"href": "http://localhost/conductors/374a648d-1229-443e-baf4-3364c944bbe7", "rel": "bookmark"}], "alive": true}], "next": "http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,alive&limit=3&marker=374a648d-1229-443e-baf4-3364c944bbe7"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_singular [0.044682s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/3b7a943b-2f10-4b41-9498-83d3ada8ac40 WITH [{'path': '/description', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-00c84966-25de-4b00-8691-2c6fec03d927 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "3b7a943b-2f10-4b41-9498-83d3ada8ac40", "created_at": "2025-05-07T22:57:51.110618+00:00", "updated_at": "2025-05-07T22:57:51.120970+00:00", "description": null, "extra": {"a": "b"}, "links": [{"href": "http://localhost/v1/chassis/3b7a943b-2f10-4b41-9498-83d3ada8ac40", "rel": "self"}, {"href": "http://localhost/chassis/3b7a943b-2f10-4b41-9498-83d3ada8ac40", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/3b7a943b-2f10-4b41-9498-83d3ada8ac40/nodes", "rel": "self"}, {"href": "http://localhost/chassis/3b7a943b-2f10-4b41-9498-83d3ada8ac40/nodes", "rel": "bookmark"}]]} GET /v1/chassis/3b7a943b-2f10-4b41-9498-83d3ada8ac40 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-54b26961-a765-4aa8-8f0e-1a7a29377fb7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "3b7a943b-2f10-4b41-9498-83d3ada8ac40", "created_at": "2025-05-07T22:57:51.110618+00:00", "updated_at": "2025-05-07T22:57:51.120970+00:00", "description": null, "extra": {"a": "b"}, "links": [{"href": "http://localhost/v1/chassis/3b7a943b-2f10-4b41-9498-83d3ada8ac40", "rel": "self"}, {"href": "http://localhost/chassis/3b7a943b-2f10-4b41-9498-83d3ada8ac40", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/3b7a943b-2f10-4b41-9498-83d3ada8ac40/nodes", "rel": "self"}, {"href": "http://localhost/chassis/3b7a943b-2f10-4b41-9498-83d3ada8ac40/nodes", "rel": "bookmark"}]]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_owner [0.043708s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?owner=12345 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aa281a46-720d-4520-b1f3-ca7509de1b70 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "f1ac7af0-de8d-4d19-b9cc-02aad2e46741", "created_at": "2025-05-07T22:57:51.117769+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/f1ac7af0-de8d-4d19-b9cc-02aad2e46741", "rel": "self"}, {"href": "http://localhost/allocations/f1ac7af0-de8d-4d19-b9cc-02aad2e46741", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "1a005e48-25e9-4cd3-948e-21a716363819", "created_at": "2025-05-07T22:57:51.118537+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/1a005e48-25e9-4cd3-948e-21a716363819", "rel": "self"}, {"href": "http://localhost/allocations/1a005e48-25e9-4cd3-948e-21a716363819", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "4360830c-df27-4b79-b843-d52f8c7fc170", "created_at": "2025-05-07T22:57:51.119283+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/4360830c-df27-4b79-b843-d52f8c7fc170", "rel": "self"}, {"href": "http://localhost/allocations/4360830c-df27-4b79-b843-d52f8c7fc170", "rel": "bookmark"}], "node_uuid": null}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_owner_not_allowed [0.029172s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?owner=12345 WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-0a12640f-852b-43dd-ad98-eee6fd61d426 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.59 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_uuid [0.038197s] ... 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-24444d97-aa79-4eb0-9c7b-45eed3abee9d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot overwrite UUID for an existing Chassis.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_cannot_see_children_if_not_owned [0.116672s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/?parent_node=049d1459-19e4-4779-9409-550220aba9d0 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-471674b9-a6f0-4123-91ae-49da04448bf1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"nodes": []} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_owner_not_allowed_mismatch [0.033094s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?owner=12345 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-947b8794-ffb4-4702-bd88-53261f57c1fb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Not authorized.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_multi [0.038928s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/7a4661cd-c1e5-4216-a009-e8c96b71873a WITH [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-72b26ebb-2d16-4fc4-9236-064f8ff3cd71 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "7a4661cd-c1e5-4216-a009-e8c96b71873a", "created_at": "2025-05-07T22:57:51.192689+00:00", "updated_at": "2025-05-07T22:57:51.201618+00:00", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/7a4661cd-c1e5-4216-a009-e8c96b71873a", "rel": "self"}, {"href": "http://localhost/chassis/7a4661cd-c1e5-4216-a009-e8c96b71873a", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/7a4661cd-c1e5-4216-a009-e8c96b71873a/nodes", "rel": "self"}, {"href": "http://localhost/chassis/7a4661cd-c1e5-4216-a009-e8c96b71873a/nodes", "rel": "bookmark"}]]} GET /v1/chassis/7a4661cd-c1e5-4216-a009-e8c96b71873a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e22fa41a-2281-4379-9475-0209789d7af3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "7a4661cd-c1e5-4216-a009-e8c96b71873a", "created_at": "2025-05-07T22:57:51.192689+00:00", "updated_at": "2025-05-07T22:57:51.201618+00:00", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/7a4661cd-c1e5-4216-a009-e8c96b71873a", "rel": "self"}, {"href": "http://localhost/chassis/7a4661cd-c1e5-4216-a009-e8c96b71873a", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/7a4661cd-c1e5-4216-a009-e8c96b71873a/nodes", "rel": "self"}, {"href": "http://localhost/chassis/7a4661cd-c1e5-4216-a009-e8c96b71873a/nodes", "rel": "bookmark"}]]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_ignores_parent_if_include_children_indicated [0.048281s] ... 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-a4736738-08f1-43a6-835f-6a7c7edbf87f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "din", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "6d081e70-b8ff-494a-a80d-895612acca07", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "not-yoda", "links": [{"href": "http://localhost/v1/nodes/6d081e70-b8ff-494a-a80d-895612acca07", "rel": "self"}, {"href": "http://localhost/nodes/6d081e70-b8ff-494a-a80d-895612acca07", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_collection_links_default_limit [0.117274s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-28f9417c-db17-416a-83bd-f0e5e130e98b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": [{"hostname": "42e1eba1-f8ca-41f7-9805-a5d377d1ded1", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/42e1eba1-f8ca-41f7-9805-a5d377d1ded1", "rel": "self"}, {"href": "http://localhost/conductors/42e1eba1-f8ca-41f7-9805-a5d377d1ded1", "rel": "bookmark"}], "alive": true}, {"hostname": "c667c549-c408-4c20-9f49-c5f868fadd29", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/c667c549-c408-4c20-9f49-c5f868fadd29", "rel": "self"}, {"href": "http://localhost/conductors/c667c549-c408-4c20-9f49-c5f868fadd29", "rel": "bookmark"}], "alive": true}, {"hostname": "d8657c86-1ecf-4fd9-88d9-27f0d3ec3cc2", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/d8657c86-1ecf-4fd9-88d9-27f0d3ec3cc2", "rel": "self"}, {"href": "http://localhost/conductors/d8657c86-1ecf-4fd9-88d9-27f0d3ec3cc2", "rel": "bookmark"}], "alive": true}], "next": "http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=d8657c86-1ecf-4fd9-88d9-27f0d3ec3cc2"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_all_by_state [0.054848s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?state=allocating WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-49e775dc-94a8-43c3-a7c4-b7a713b59bbe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "48d769ba-114e-4b2f-994d-e83951eda28d", "created_at": "2025-05-07T22:57:51.228376+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/48d769ba-114e-4b2f-994d-e83951eda28d", "rel": "self"}, {"href": "http://localhost/allocations/48d769ba-114e-4b2f-994d-e83951eda28d", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "e8fac484-cc05-4736-85e6-e460a69a1527", "created_at": "2025-05-07T22:57:51.229149+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/e8fac484-cc05-4736-85e6-e460a69a1527", "rel": "self"}, {"href": "http://localhost/allocations/e8fac484-cc05-4736-85e6-e460a69a1527", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "b87e6b5a-9692-42eb-b634-2aa4486a7300", "created_at": "2025-05-07T22:57:51.232941+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/b87e6b5a-9692-42eb-b634-2aa4486a7300", "rel": "self"}, {"href": "http://localhost/allocations/b87e6b5a-9692-42eb-b634-2aa4486a7300", "rel": "bookmark"}], "node_uuid": null}]} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_singular [0.040282s] ... 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-0b58c8dc-89f6-40f1-abc6-612b93571331 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-07T22:57:51.231625+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-4722b3fd-c25d-46a6-b337-32b18c11f887 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-07T22:57:51.231625+00:00", "updated_at": "2000-01-01T00:00:00+00:00", "description": "chassis-new-description", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_lists_empty_for_specific_parent [0.043314s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/?parent_node=dab3e40b-e600-4981-b938-7a86a4a3f6bb WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bdfdecc2-5b1d-4fc7-96e1-96fee73689ff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"nodes": []} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource [0.037719s] ... 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-52935094-169e-4b16-8127-272ddae46282 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6f414b5a-5f65-402c-8f93-11dc6d0a59f1", "created_at": "2025-05-07T22:57:51.274914+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/6f414b5a-5f65-402c-8f93-11dc6d0a59f1", "rel": "self"}, {"href": "http://localhost/allocations/6f414b5a-5f65-402c-8f93-11dc6d0a59f1", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_error [0.038084s] ... 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-a8e6ce77-d56c-4d69-bcaa-8bd97e412e9f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_and_id [0.031384s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation/99b13ca0-741f-4d95-9d99-d4d4e8347b94 WITH {} GOT Response: 405 Method Not Allowed Allow: DELETE, GET Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_not_found [0.034632s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/chassis/e841d8e0-1131-4ed6-9542-5f2cb7e1ad5a WITH [{'path': '/extra/a', 'value': 'b', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-35baf08b-15f2-4e24-9655-e9a103df6349 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis e841d8e0-1131-4ed6-9542-5f2cb7e1ad5a could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_with_children_only_parent [0.042575s] ... 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-5e2aa31b-ea74-4792-8121-a2c5a6a035ae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "lessee": "73787c7e-9ce4-41d6-beed-e7fed4f52cfb", "name": "din", "parent_node": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_empty [0.095792s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d5812b88-1f11-4c18-a2fc-c75febff3075 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": []} {2} ironic.tests.unit.api.controllers.v1.test_node.TestNodeChildrenTestCase.test_list_nodes_with_include_children [0.037117s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/?include_children=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d14283d4-b710-4daa-980e-ce9d2e4810ed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "din", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "3810bd0e-af8a-49bd-b27b-6523b6cdb763", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "not-yoda", "links": [{"href": "http://localhost/v1/nodes/3810bd0e-af8a-49bd-b27b-6523b6cdb763", "rel": "self"}, {"href": "http://localhost/nodes/3810bd0e-af8a-49bd-b27b-6523b6cdb763", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links [0.050455s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d0e228a6-065c-4ca5-9d62-9459b4efda7d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "95b4a6d8-6524-41a7-88a5-24d817bdc849", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/95b4a6d8-6524-41a7-88a5-24d817bdc849", "rel": "self"}, {"href": "http://localhost/deploy_templates/95b4a6d8-6524-41a7-88a5-24d817bdc849", "rel": "bookmark"}]}, {"uuid": "dd89887c-160c-4b71-a53d-0a0faa646260", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/dd89887c-160c-4b71-a53d-0a0faa646260", "rel": "self"}, {"href": "http://localhost/deploy_templates/dd89887c-160c-4b71-a53d-0a0faa646260", "rel": "bookmark"}]}, {"uuid": "fb514b0a-cb7c-4cd2-b74e-47984e4fb567", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/fb514b0a-cb7c-4cd2-b74e-47984e4fb567", "rel": "self"}, {"href": "http://localhost/deploy_templates/fb514b0a-cb7c-4cd2-b74e-47984e4fb567", "rel": "bookmark"}]}], "next": "http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=fb514b0a-cb7c-4cd2-b74e-47984e4fb567"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_invalid_api_version [0.068255s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_custom_fields [0.039176s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?fields=uuid,steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-faaef2eb-bb89-414a-aa5a-af912d8fc891 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "47eaa6df-a7b4-41ef-bf4f-1b8d2d6eca94", "links": [{"href": "http://localhost/v1/deploy_templates/47eaa6df-a7b4-41ef-bf4f-1b8d2d6eca94", "rel": "self"}, {"href": "http://localhost/deploy_templates/47eaa6df-a7b4-41ef-bf4f-1b8d2d6eca94", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "26e0aa61-bb03-4617-aa9e-f529892cd397", "links": [{"href": "http://localhost/v1/deploy_templates/26e0aa61-bb03-4617-aa9e-f529892cd397", "rel": "self"}, {"href": "http://localhost/deploy_templates/26e0aa61-bb03-4617-aa9e-f529892cd397", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "782d9e10-806e-46ae-928c-cd95cd011a03", "links": [{"href": "http://localhost/v1/deploy_templates/782d9e10-806e-46ae-928c-cd95cd011a03", "rel": "self"}, {"href": "http://localhost/deploy_templates/782d9e10-806e-46ae-928c-cd95cd011a03", "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=782d9e10-806e-46ae-928c-cd95cd011a03"} {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_collection_custom_fields [0.087097s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors?fields=hostname,alive WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d25d24e2-ca5e-4031-b730-5d91a09cfd4a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": [{"hostname": "rocky.rocks", "links": [{"href": "http://localhost/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://localhost/conductors/rocky.rocks", "rel": "bookmark"}], "alive": true}, {"hostname": "stein.rocks", "links": [{"href": "http://localhost/v1/conductors/stein.rocks", "rel": "self"}, {"href": "http://localhost/conductors/stein.rocks", "rel": "bookmark"}], "alive": true}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait [0.053446s] ... 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-e202d5c3-919d-4665-ad4d-5463154224b4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_collection_links_default_limit [0.049932s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fc0c69c6-f1a4-44f4-be2e-2ad23618bb6c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "5f4fc12c-150b-40bc-94af-1b63810979d7", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/5f4fc12c-150b-40bc-94af-1b63810979d7", "rel": "self"}, {"href": "http://localhost/deploy_templates/5f4fc12c-150b-40bc-94af-1b63810979d7", "rel": "bookmark"}]}, {"uuid": "d6cb8d51-880d-42af-96c2-4951d2b03b06", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/d6cb8d51-880d-42af-96c2-4951d2b03b06", "rel": "self"}, {"href": "http://localhost/deploy_templates/d6cb8d51-880d-42af-96c2-4951d2b03b06", "rel": "bookmark"}]}, {"uuid": "c47fc51b-3ee3-4af0-928e-0b6b489873c8", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/c47fc51b-3ee3-4af0-928e-0b6b489873c8", "rel": "self"}, {"href": "http://localhost/deploy_templates/c47fc51b-3ee3-4af0-928e-0b6b489873c8", "rel": "bookmark"}]}], "next": "http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=c47fc51b-3ee3-4af0-928e-0b6b489873c8"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_locked [0.051141s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits/CUSTOM_3 WITH {} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-3806fdff-d735-4444-b70e-199fb3f74283 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host host1, please retry after the current operation is completed.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_with_fields [0.092391s] ... 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-336bd44b-941f-4bc3-9239-5929b3ee7aa9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"extra": {}, "name": null, "links": [{"href": "http://localhost/v1/allocations/3c3d7a0e-eccf-4ae5-9fc7-bb056c18c031", "rel": "self"}, {"href": "http://localhost/allocations/3c3d7a0e-eccf-4ae5-9fc7-bb056c18c031", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_custom_fields_invalid_fields [0.097566s] ... 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-95579966-2503-4a47-9333-f340c615ce70 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query [0.071368s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8df2d36c-7a06-47c4-b10c-a2f69323206c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "c3512c55-ba34-40f9-a01f-7803eea514e7", "created_at": "2025-05-07T22:57:51.519672+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/c3512c55-ba34-40f9-a01f-7803eea514e7", "rel": "self"}, {"href": "http://localhost/deploy_templates/c3512c55-ba34-40f9-a01f-7803eea514e7", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]} {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one [0.031678s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-85545a51-7fad-404a-a824-2514c9e982cd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2025-05-07T22:57:51.551200+00:00", "updated_at": "2025-05-07T22:57:51.550240+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} {2} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_not_found [0.083853s] ... 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-062ea194-4673-4385-9993-cd8464a45d97 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_conductor_offline_old_heartbeat [0.033637s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d8a3688e-0d20-4312-a7e2-a2b696551a4f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2000-01-01T00:00:00+00:00", "updated_at": "2000-01-01T00:00:00+00:00", "hostname": "rocky.rocks", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://localhost/conductors/rocky.rocks", "rel": "bookmark"}], "alive": false} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query_false [0.066088s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9687b2f0-f822-453e-a932-c0b1cf7a4f8b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "20c6cdcf-6ce0-41eb-a357-8b5bd5f2e3ca", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/20c6cdcf-6ce0-41eb-a357-8b5bd5f2e3ca", "rel": "self"}, {"href": "http://localhost/deploy_templates/20c6cdcf-6ce0-41eb-a357-8b5bd5f2e3ca", "rel": "bookmark"}]}]} GET /v1/deploy_templates?detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3f96182b-1434-4464-ac8c-6b199381552a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "20c6cdcf-6ce0-41eb-a357-8b5bd5f2e3ca", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/20c6cdcf-6ce0-41eb-a357-8b5bd5f2e3ca", "rel": "self"}, {"href": "http://localhost/deploy_templates/20c6cdcf-6ce0-41eb-a357-8b5bd5f2e3ca", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_custom_fields [0.125322s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7b4105e9-bbe3-4f00-be12-c42b49a22276 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "b6c0b6ec-5b03-44f5-88e6-156fa52d7d57", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/b6c0b6ec-5b03-44f5-88e6-156fa52d7d57", "rel": "self"}, {"href": "http://localhost/allocations/b6c0b6ec-5b03-44f5-88e6-156fa52d7d57", "rel": "bookmark"}]}, {"uuid": "a00ca4cb-561a-4fbd-bc3c-673945fe3955", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/a00ca4cb-561a-4fbd-bc3c-673945fe3955", "rel": "self"}, {"href": "http://localhost/allocations/a00ca4cb-561a-4fbd-bc3c-673945fe3955", "rel": "bookmark"}]}, {"uuid": "1a59ecaa-952f-4280-9363-4b5c31951717", "extra": {}, "links": [{"href": "http://localhost/v1/allocations/1a59ecaa-952f-4280-9363-4b5c31951717", "rel": "self"}, {"href": "http://localhost/allocations/1a59ecaa-952f-4280-9363-4b5c31951717", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_conductor_offline_unregistered [0.049721s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-69c62df3-3556-41e2-b8fd-0f8107925140 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2025-05-07T22:57:51.624115+00:00", "updated_at": "2025-05-07T22:57:51.633001+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_node.TestTraits.test_add_single_trait_fails_max_trait_limit [0.084811s] ... 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-76f080a8-120d-4974-b971-3c328c38e94d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"too many traits\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_sort_key_allowed [0.086504s] ... 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-c5872149-4345-4c09-8263-5f8c700994fa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "fdebd880-c0c2-4a75-9816-223cbdfd4768", "created_at": "2025-05-07T22:57:51.671825+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/fdebd880-c0c2-4a75-9816-223cbdfd4768", "rel": "self"}, {"href": "http://localhost/deploy_templates/fdebd880-c0c2-4a75-9816-223cbdfd4768", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "617dd045-4340-4a08-bc8a-462d82ed957b", "created_at": "2025-05-07T22:57:51.669981+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/617dd045-4340-4a08-bc8a-462d82ed957b", "rel": "self"}, {"href": "http://localhost/deploy_templates/617dd045-4340-4a08-bc8a-462d82ed957b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "0687e7e5-2946-4062-9357-a9c74f3df38b", "created_at": "2025-05-07T22:57:51.652959+00:00", "updated_at": null, "name": "CUSTOM_DT3", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/0687e7e5-2946-4062-9357-a9c74f3df38b", "rel": "self"}, {"href": "http://localhost/deploy_templates/0687e7e5-2946-4062-9357-a9c74f3df38b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]} {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_custom_fields [0.056216s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks?fields=hostname,alive WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f83eb966-7907-4163-a30b-e459a5e1720f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"hostname": "rocky.rocks", "links": [{"href": "http://localhost/v1/conductors/rocky.rocks", "rel": "self"}, {"href": "http://localhost/conductors/rocky.rocks", "rel": "bookmark"}], "alive": true} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_pagination_no_uuid [0.088331s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?fields=node_uuid&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bdab6a2f-0c22-4cef-a304-35c764c71c42 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"links": [{"href": "http://localhost/v1/allocations/7976c04a-b037-4904-b49f-7e9cd3a0de4a", "rel": "self"}, {"href": "http://localhost/allocations/7976c04a-b037-4904-b49f-7e9cd3a0de4a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"links": [{"href": "http://localhost/v1/allocations/0179ea3f-3d15-43d1-a7ce-8f0a36234591", "rel": "self"}, {"href": "http://localhost/allocations/0179ea3f-3d15-43d1-a7ce-8f0a36234591", "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=0179ea3f-3d15-43d1-a7ce-8f0a36234591"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_with_bad_version [0.069146s] ... 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\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_with_invalid_api [0.039335s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-28ec71d5-9fae-4c30-a4c3-ff65ee4a8a64 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_and_fields [0.052055s] ... 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-ba231d82-2bec-450c-bc1a-aadf6d2c74f9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_custom_fields_invalid_fields [0.069089s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/204bb287-2357-42bf-b92d-ee56678b8ba7?fields=uuid,spongebob WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-27da4317-5f9f-470b-b6fb-bbe9adfb334f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_with_port_and_v6 [0.041787s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/[::1]:8090 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c63c83eb-a900-47ae-902c-d2a265151f1e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2025-05-07T22:57:51.766800+00:00", "updated_at": "2025-05-07T22:57:51.766564+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} {2} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_bad_trait [0.087636s] ... 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-4bdc1ddf-e74f-43cb-b53f-e608fac65426 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for trait: 'bad_trait' is not valid under any of the given schemas. Possible root cause: 'bad_trait' does not match '^CUSTOM_[A-Z0-9_]+$'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_false_and_fields [0.081060s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?detail=False&fields=steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ba434622-efe4-424f-be34-c6274f85abbd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"links": [{"href": "http://localhost/v1/deploy_templates/70580193-349e-4faf-94d5-1ed8f770b9a2", "rel": "self"}, {"href": "http://localhost/deploy_templates/70580193-349e-4faf-94d5-1ed8f770b9a2", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]} {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links [0.061334s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1fedea28-0b27-42e6-a5a1-83e28865d26f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2025-05-07T22:57:51.812154+00:00", "updated_at": "2025-05-07T22:57:51.811924+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-79fbb144-c410-433e-89ce-29e450e78bda X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2025-05-07T22:57:51.812154+00:00", "updated_at": "2025-05-07T22:57:51.811924+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-61cf5787-5c2c-4bff-a9a3-5b9f77c42762 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2025-05-07T22:57:51.812154+00:00", "updated_at": "2025-05-07T22:57:51.811924+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_allocation.TestListAllocations.test_get_one [0.072418s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/a74d6d22-159e-4274-917b-c3cb4b146cbb WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9105e28e-fd25-4fc7-8584-dbd08c189948 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a74d6d22-159e-4274-917b-c3cb4b146cbb", "created_at": "2025-05-07T22:57:51.840116+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/a74d6d22-159e-4274-917b-c3cb4b146cbb", "rel": "self"}, {"href": "http://localhost/allocations/a74d6d22-159e-4274-917b-c3cb4b146cbb", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_empty [0.057292s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bba8816b-f4c2-4816-8026-c6d0bcfadddd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": []} {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_links_public_url [0.055707s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e1d1877d-af14-4500-af62-489a86ba5745 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2025-05-07T22:57:51.866981+00:00", "updated_at": "2025-05-07T22:57:51.866796+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-a300bcca-0a98-4498-8925-011232d5fd56 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2025-05-07T22:57:51.866981+00:00", "updated_at": "2025-05-07T22:57:51.866796+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-f46a6f48-1ddf-4323-a38d-bf74cc945c1a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2025-05-07T22:57:51.866981+00:00", "updated_at": "2025-05-07T22:57:51.866796+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_allocation.TestListAllocations.test_get_one_custom_fields [0.065748s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/e2c95096-72c1-4952-b08c-a5d5765e5ce2?fields=resource_class,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-47b886c6-f4e8-40bf-88f1-a10d8986d6dd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"extra": {}, "resource_class": "baremetal", "links": [{"href": "http://localhost/v1/allocations/e2c95096-72c1-4952-b08c-a5d5765e5ce2", "rel": "self"}, {"href": "http://localhost/allocations/e2c95096-72c1-4952-b08c-a5d5765e5ce2", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_all_invalid_api_version [0.062803s] ... 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\"}"} {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list [0.066133s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c6c1c402-f4b6-4491-93b0-5e76e281356e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": [{"hostname": "why care", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/why care", "rel": "self"}, {"href": "http://localhost/conductors/why care", "rel": "bookmark"}], "alive": true}, {"hostname": "why not", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/why not", "rel": "self"}, {"href": "http://localhost/conductors/why not", "rel": "bookmark"}], "alive": true}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version [0.054094s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/78bf9c5d-0fa3-4049-9931-da9653148ae2 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_conductor.TestListConductors.test_list_with_detail [0.036334s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors?detail=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a1d80c65-e11d-4acf-8d36-0994677d1813 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": [{"created_at": "2025-05-07T22:57:51.991324+00:00", "updated_at": "2025-05-07T22:57:51.991039+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-07T22:57:51.994534+00:00", "updated_at": "2025-05-07T22:57:51.992680+00:00", "hostname": "why not", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/why not", "rel": "self"}, {"href": "http://localhost/conductors/why not", "rel": "bookmark"}], "alive": true}]} {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list_with_invalid_api [0.031583s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-141563ff-c31e-4c7e-8aaa-1f7832da3763 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_invalid_api_version_without_check [0.060319s] ... 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\"}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_custom_fields [0.103599s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?fields=uuid,steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-66eb197f-47ab-488e-a691-9b56a9b9785a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "16f7c374-8360-45ef-ac3e-81d1e5a8afb0", "links": [{"href": "http://localhost/v1/deploy_templates/16f7c374-8360-45ef-ac3e-81d1e5a8afb0", "rel": "self"}, {"href": "http://localhost/deploy_templates/16f7c374-8360-45ef-ac3e-81d1e5a8afb0", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "d50be3c1-ec8b-4a69-aa77-2edd102057e0", "links": [{"href": "http://localhost/v1/deploy_templates/d50be3c1-ec8b-4a69-aa77-2edd102057e0", "rel": "self"}, {"href": "http://localhost/deploy_templates/d50be3c1-ec8b-4a69-aa77-2edd102057e0", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}, {"uuid": "3eaf95e3-3948-41ae-9096-f6b6c81b46f3", "links": [{"href": "http://localhost/v1/deploy_templates/3eaf95e3-3948-41ae-9096-f6b6c81b46f3", "rel": "self"}, {"href": "http://localhost/deploy_templates/3eaf95e3-3948-41ae-9096-f6b6c81b46f3", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]}]} {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key [0.051475s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors?sort_key=hostname WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-85de6597-b385-45f7-8ecf-cc8036e861e4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": [{"hostname": "3b15899d-fcb7-40cc-9af1-1f5585f78e3d", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/3b15899d-fcb7-40cc-9af1-1f5585f78e3d", "rel": "self"}, {"href": "http://localhost/conductors/3b15899d-fcb7-40cc-9af1-1f5585f78e3d", "rel": "bookmark"}], "alive": true}, {"hostname": "4fc68844-fef4-4198-8052-2b278fbcec9f", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/4fc68844-fef4-4198-8052-2b278fbcec9f", "rel": "self"}, {"href": "http://localhost/conductors/4fc68844-fef4-4198-8052-2b278fbcec9f", "rel": "bookmark"}], "alive": true}, {"hostname": "a9828b91-22d6-42c4-a53f-65f743455a02", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/a9828b91-22d6-42c4-a53f-65f743455a02", "rel": "self"}, {"href": "http://localhost/conductors/a9828b91-22d6-42c4-a53f-65f743455a02", "rel": "bookmark"}], "alive": true}, {"hostname": "aec053c5-0826-489e-8341-cdbe84f7abb8", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/aec053c5-0826-489e-8341-cdbe84f7abb8", "rel": "self"}, {"href": "http://localhost/conductors/aec053c5-0826-489e-8341-cdbe84f7abb8", "rel": "bookmark"}], "alive": true}, {"hostname": "c9300b8e-c106-4367-a4cf-24ade4bc4fea", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/c9300b8e-c106-4367-a4cf-24ade4bc4fea", "rel": "self"}, {"href": "http://localhost/conductors/c9300b8e-c106-4367-a4cf-24ade4bc4fea", "rel": "bookmark"}], "alive": true}]} {0} ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key_invalid [0.035827s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors?sort_key=alive WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6634acdd-e8f4-4439-80cb-712189c5b99c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value alive is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/conductors?sort_key=drivers WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-df29dcc2-4992-44f6-aba2-63643d9cb6da X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value drivers is an invalid field for sorting\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_pagination_no_uuid [0.068198s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?fields=name&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d0691398-15fd-4635-b954-8b5263928856 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/7742ef73-c426-4bde-8c7c-eeaca89d1298", "rel": "self"}, {"href": "http://localhost/deploy_templates/7742ef73-c426-4bde-8c7c-eeaca89d1298", "rel": "bookmark"}]}, {"name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/ecc150cb-c25a-4a0b-9d84-42baf72749e3", "rel": "self"}, {"href": "http://localhost/deploy_templates/ecc150cb-c25a-4a0b-9d84-42baf72749e3", "rel": "bookmark"}]}], "next": "http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=ecc150cb-c25a-4a0b-9d84-42baf72749e3"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_double_json_in_name [0.072562s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/43640e3c-e816-479c-8402-99f2308f0d41 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b52f5110-394d-4f7e-9712-c9e24c151538 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "43640e3c-e816-479c-8402-99f2308f0d41", "created_at": "2025-05-07T22:57:52.098055+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/43640e3c-e816-479c-8402-99f2308f0d41", "rel": "self"}, {"href": "http://localhost/allocations/43640e3c-e816-479c-8402-99f2308f0d41", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_custom_fields_invalid_fields [0.053383s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/d6ac962e-b6ff-4c44-9c25-948cba423deb?fields=uuid,spongebob WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5fde975d-e533-4193-8053-7269799ab4bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestPost.test_create_rule [0.055669s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/inspection_rules WITH {'uuid': '8f0793be-297d-4b54-bf07-f334eb68a7fa', '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/8f0793be-297d-4b54-bf07-f334eb68a7fa Openstack-Request-Id: req-925e0ddf-5aa5-4b6b-95f6-5cc27d6454c1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "8f0793be-297d-4b54-bf07-f334eb68a7fa", "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/8f0793be-297d-4b54-bf07-f334eb68a7fa", "rel": "self"}, {"href": "http://localhost/inspection/8f0793be-297d-4b54-bf07-f334eb68a7fa", "rel": "bookmark"}]} GET /v1/inspection_rules/8f0793be-297d-4b54-bf07-f334eb68a7fa WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8dc618a6-f0f1-4c23-b299-3a7c2e79a112 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "8f0793be-297d-4b54-bf07-f334eb68a7fa", "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/8f0793be-297d-4b54-bf07-f334eb68a7fa", "rel": "self"}, {"href": "http://localhost/inspection/8f0793be-297d-4b54-bf07-f334eb68a7fa", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json [0.067118s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/67aa61aa-bcf9-415c-975a-14d0a56da0f4.json WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5b84f3c3-2b6a-410c-a284-43bca65f450c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "67aa61aa-bcf9-415c-975a-14d0a56da0f4", "created_at": "2025-05-07T22:57:52.173159+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/67aa61aa-bcf9-415c-975a-14d0a56da0f4", "rel": "self"}, {"href": "http://localhost/allocations/67aa61aa-bcf9-415c-975a-14d0a56da0f4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one [0.036191s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/7bbfd2de-bb63-4898-ae4d-f9c01f3f32fc WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aefb502d-f55b-4e36-b5ba-be83cac30008 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "7bbfd2de-bb63-4898-ae4d-f9c01f3f32fc", "created_at": "2025-05-07T22:57:52.207587+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/7bbfd2de-bb63-4898-ae4d-f9c01f3f32fc", "rel": "self"}, {"href": "http://localhost/deploy_templates/7bbfd2de-bb63-4898-ae4d-f9c01f3f32fc", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestPost.test_create_rule_generate_uuid [0.055654s] ... 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/267b3470-7452-4f22-8c13-d238634a2f32 Openstack-Request-Id: req-601153f8-b4a0-46d2-8b23-228a3922caa4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "267b3470-7452-4f22-8c13-d238634a2f32", "created_at": "2025-05-07T22:57:52.225904+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/267b3470-7452-4f22-8c13-d238634a2f32", "rel": "self"}, {"href": "http://localhost/inspection/267b3470-7452-4f22-8c13-d238634a2f32", "rel": "bookmark"}]} GET /v1/inspection_rules/267b3470-7452-4f22-8c13-d238634a2f32 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9d4900ec-559c-4291-82d5-bf40afee883c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "267b3470-7452-4f22-8c13-d238634a2f32", "created_at": "2025-05-07T22:57:52.225904+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/267b3470-7452-4f22-8c13-d238634a2f32", "rel": "self"}, {"href": "http://localhost/inspection/267b3470-7452-4f22-8c13-d238634a2f32", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_custom_fields [0.029074s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/bdcd3b85-92e6-40c2-a1be-e5e0e6536227?fields=name,steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-149be2cc-2955-4959-98ce-4ff64e7d2550 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/bdcd3b85-92e6-40c2-a1be-e5e0e6536227", "rel": "self"}, {"href": "http://localhost/deploy_templates/bdcd3b85-92e6-40c2-a1be-e5e0e6536227", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json_in_name [0.071296s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/6ec7c208-e879-45c6-b739-16c262ed5758 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4eb247c9-1ada-49a4-ac91-58d9d8787a18 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6ec7c208-e879-45c6-b739-16c262ed5758", "created_at": "2025-05-07T22:57:52.250956+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/6ec7c208-e879-45c6-b739-16c262ed5758", "rel": "self"}, {"href": "http://localhost/allocations/6ec7c208-e879-45c6-b739-16c262ed5758", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_inspection_rule.TestPost.test_create_rule_with_optional_args [0.038875s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/inspection_rules WITH {'uuid': '10fe48fd-ac73-49a4-a7ba-3563468e5565', '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/10fe48fd-ac73-49a4-a7ba-3563468e5565 Openstack-Request-Id: req-477a5b2f-f380-4e5c-83e0-77e03c3926e3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "10fe48fd-ac73-49a4-a7ba-3563468e5565", "created_at": "2025-05-07T22:57:52.270457+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/10fe48fd-ac73-49a4-a7ba-3563468e5565", "rel": "self"}, {"href": "http://localhost/inspection/10fe48fd-ac73-49a4-a7ba-3563468e5565", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_invalid_api_version [0.029990s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/a10cb9cd-f8ce-44d4-a391-faa03f2906c7 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_node.TestTraits.test_add_single_trait_rejects_too_long_trait [0.485182s] ... 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-482937f4-61c5-49fb-80cf-95e9fa1b737d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for trait: 'CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT' is too long\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_json [0.041401s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/a0e54f19-43a9-486d-8f59-d2253cf44587.json WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2eaad6cb-d5f1-428b-872e-3dd7f92deaa2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "a0e54f19-43a9-486d-8f59-d2253cf44587", "created_at": "2025-05-07T22:57:52.307619+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/a0e54f19-43a9-486d-8f59-d2253cf44587", "rel": "self"}, {"href": "http://localhost/deploy_templates/a0e54f19-43a9-486d-8f59-d2253cf44587", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_associated [0.051519s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-fb6af520-99d0-4c4c-b000-e08a2e01ea10 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is associated with instance aaaaaaaa-1111-bbbb-2222-cccccccccccc.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_json_not_found [0.068919s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/e81b96c8-795e-491c-ac97-c80176b38362.json WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-971b6546-2c24-48d2-bac0-1f4eedf2b319 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation e81b96c8-795e-491c-ac97-c80176b38362.json could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_json_not_found [0.039268s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/53f808ed-f983-4151-808d-bc11371c9f2f.json WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ede4a751-6a93-47c8-bb79-b2d5a1804a5f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template 53f808ed-f983-4151-808d-bc11371c9f2f.json could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node [0.044828s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 204 No Content Openstack-Request-Id: req-55cc8986-bdfa-45d3-a39d-4dc95edd64dc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_with_suffix [0.032044s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/b3d00a99-c49b-42e0-b6ea-6afa100f24c0 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6e751695-a201-4e90-95bb-1c9c7b78fe6f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b3d00a99-c49b-42e0-b6ea-6afa100f24c0", "created_at": "2025-05-07T22:57:52.379796+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/b3d00a99-c49b-42e0-b6ea-6afa100f24c0", "rel": "self"}, {"href": "http://localhost/deploy_templates/b3d00a99-c49b-42e0-b6ea-6afa100f24c0", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits [0.099203s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/traits GOT Response: 204 No Content Openstack-Request-Id: req-9abfbb77-548d-4c0f-b412-fc200d21e22c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name [0.036495s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/foo.1 GOT Response: 204 No Content Openstack-Request-Id: req-f799f655-00ca-4514-bc4d-037c6093b76e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_one_with_suffix [0.080353s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/ad7e4c10-b9e0-49bf-84cb-2547ea54be41 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9a5bbca6-7a6d-4046-863d-6b03392d84d1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ad7e4c10-b9e0-49bf-84cb-2547ea54be41", "created_at": "2025-05-07T22:57:52.393216+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/ad7e4c10-b9e0-49bf-84cb-2547ea54be41", "rel": "self"}, {"href": "http://localhost/allocations/ad7e4c10-b9e0-49bf-84cb-2547ea54be41", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_unsupported [0.034558s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/foo GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9d1aff31-0002-4903-b3e9-a55d99aff9a1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_links [0.066871s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/f3823440-fbc3-41ae-a0f0-ad41d9d99925 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-06a4ced1-5758-4d58-8c1e-0e1198accc35 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f3823440-fbc3-41ae-a0f0-ad41d9d99925", "created_at": "2025-05-07T22:57:52.415240+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/f3823440-fbc3-41ae-a0f0-ad41d9d99925", "rel": "self"}, {"href": "http://localhost/deploy_templates/f3823440-fbc3-41ae-a0f0-ad41d9d99925", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} GET /v1/deploy_templates/f3823440-fbc3-41ae-a0f0-ad41d9d99925 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-35f56f21-5299-4e36-be95-b9441a67fe42 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f3823440-fbc3-41ae-a0f0-ad41d9d99925", "created_at": "2025-05-07T22:57:52.415240+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/f3823440-fbc3-41ae-a0f0-ad41d9d99925", "rel": "self"}, {"href": "http://localhost/deploy_templates/f3823440-fbc3-41ae-a0f0-ad41d9d99925", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} GET /deploy_templates/f3823440-fbc3-41ae-a0f0-ad41d9d99925 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a17943fa-6d80-4b83-b551-ca9ba860991a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f3823440-fbc3-41ae-a0f0-ad41d9d99925", "created_at": "2025-05-07T22:57:52.415240+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/f3823440-fbc3-41ae-a0f0-ad41d9d99925", "rel": "self"}, {"href": "http://localhost/deploy_templates/f3823440-fbc3-41ae-a0f0-ad41d9d99925", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_with_json [0.044072s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/foo.json GOT Response: 204 No Content Openstack-Request-Id: req-536a3bfd-5d76-4bc7-a8f9-85690a0fc9f7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {2} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_fails_with_bad_version [0.084874s] ... 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-ad1678f7-469b-4aeb-8a28-9027c313567b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.36 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_owner_field [0.071484s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/b9ef043a-178c-40bd-8ebb-37dbec538ff6?fields=owner WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-689e8de0-4d6d-4ffe-bb95-dfafa7468bc7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"owner": "12345", "links": [{"href": "http://localhost/v1/allocations/b9ef043a-178c-40bd-8ebb-37dbec538ff6", "rel": "self"}, {"href": "http://localhost/allocations/b9ef043a-178c-40bd-8ebb-37dbec538ff6", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_many [0.059724s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c1dd04a1-c995-45b1-83ae-527de359c683 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "f3a2362c-af59-4c3b-958c-00c4edab3d22", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/f3a2362c-af59-4c3b-958c-00c4edab3d22", "rel": "self"}, {"href": "http://localhost/deploy_templates/f3a2362c-af59-4c3b-958c-00c4edab3d22", "rel": "bookmark"}]}, {"uuid": "289ec2a7-c7c0-4b6b-9ea1-7fe41508a390", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/289ec2a7-c7c0-4b6b-9ea1-7fe41508a390", "rel": "self"}, {"href": "http://localhost/deploy_templates/289ec2a7-c7c0-4b6b-9ea1-7fe41508a390", "rel": "bookmark"}]}, {"uuid": "f53afb76-7fb8-462a-93db-fdfe6ce73c0c", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/f53afb76-7fb8-462a-93db-fdfe6ce73c0c", "rel": "self"}, {"href": "http://localhost/deploy_templates/f53afb76-7fb8-462a-93db-fdfe6ce73c0c", "rel": "bookmark"}]}, {"uuid": "ab27c7fc-4e19-4ba1-9a74-a47f01a75bc9", "name": "CUSTOM_DT3", "links": [{"href": "http://localhost/v1/deploy_templates/ab27c7fc-4e19-4ba1-9a74-a47f01a75bc9", "rel": "self"}, {"href": "http://localhost/deploy_templates/ab27c7fc-4e19-4ba1-9a74-a47f01a75bc9", "rel": "bookmark"}]}, {"uuid": "74d96de2-6031-4dcd-a002-62aa1172c2ff", "name": "CUSTOM_DT4", "links": [{"href": "http://localhost/v1/deploy_templates/74d96de2-6031-4dcd-a002-62aa1172c2ff", "rel": "self"}, {"href": "http://localhost/deploy_templates/74d96de2-6031-4dcd-a002-62aa1172c2ff", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode [0.031384s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 202 Accepted Openstack-Request-Id: req-de7b4551-ecfb-4a63-9c1d-81fbe8254fdf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_one [0.029557s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-00a0eb20-a89e-494b-a7d2-844a8bfb7175 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "e08a969c-cd78-49c3-b2a7-3d10c7175614", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/e08a969c-cd78-49c3-b2a7-3d10c7175614", "rel": "self"}, {"href": "http://localhost/deploy_templates/e08a969c-cd78-49c3-b2a7-3d10c7175614", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode_by_name [0.037227s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/foo/maintenance GOT Response: 202 Accepted Openstack-Request-Id: req-9e556a92-7c12-4d8b-8f8f-35d285d5de1d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found [0.029439s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-eae322ed-6d81-4260-bfd6-4352b1fd6b22 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_with_chassis [0.099049s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/traits GOT Response: 204 No Content Openstack-Request-Id: req-3ab49e60-7333-4c4f-bddb-bcf6192a358f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sensitive_data_masked [0.041444s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/554c6007-47d5-43aa-9ff4-46b4d671e899 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5748081a-ce46-45cf-8922-e39c622e8385 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "554c6007-47d5-43aa-9ff4-46b4d671e899", "created_at": "2025-05-07T22:57:52.584102+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/554c6007-47d5-43aa-9ff4-46b4d671e899", "rel": "self"}, {"href": "http://localhost/deploy_templates/554c6007-47d5-43aa-9ff4-46b4d671e899", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": [], "password": "******"}, "priority": 10}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_links [0.100105s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/0c3e92ce-3fa7-4a93-aea4-b935d47419ee WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b6afcacc-5e6a-4b4c-b515-036fe328033d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "0c3e92ce-3fa7-4a93-aea4-b935d47419ee", "created_at": "2025-05-07T22:57:52.545868+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/0c3e92ce-3fa7-4a93-aea4-b935d47419ee", "rel": "self"}, {"href": "http://localhost/allocations/0c3e92ce-3fa7-4a93-aea4-b935d47419ee", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/allocations/0c3e92ce-3fa7-4a93-aea4-b935d47419ee WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-00046e8e-3d46-47cb-adc3-0f8795f9928f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "0c3e92ce-3fa7-4a93-aea4-b935d47419ee", "created_at": "2025-05-07T22:57:52.545868+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/0c3e92ce-3fa7-4a93-aea4-b935d47419ee", "rel": "self"}, {"href": "http://localhost/allocations/0c3e92ce-3fa7-4a93-aea4-b935d47419ee", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /allocations/0c3e92ce-3fa7-4a93-aea4-b935d47419ee WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-602854a7-98cf-41a3-9903-11ffbcb2fbd4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "0c3e92ce-3fa7-4a93-aea4-b935d47419ee", "created_at": "2025-05-07T22:57:52.545868+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/0c3e92ce-3fa7-4a93-aea4-b935d47419ee", "rel": "self"}, {"href": "http://localhost/allocations/0c3e92ce-3fa7-4a93-aea4-b935d47419ee", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name [0.032037s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/foo GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a7786253-5a0a-4e58-9353-d636cfd74fec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name_unsupported [0.033462s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/foo GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b6ae394a-4681-464c-8627-f4061df75846 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key [0.066417s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bdf4dca9-4d23-4f0c-900f-c1e34962b2a1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "4eb9db7c-871a-4123-b7b5-504bd5cef225", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/deploy_templates/4eb9db7c-871a-4123-b7b5-504bd5cef225", "rel": "self"}, {"href": "http://localhost/deploy_templates/4eb9db7c-871a-4123-b7b5-504bd5cef225", "rel": "bookmark"}]}, {"uuid": "add1e6b9-8dfc-4482-92a3-54c7323a223f", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/add1e6b9-8dfc-4482-92a3-54c7323a223f", "rel": "self"}, {"href": "http://localhost/deploy_templates/add1e6b9-8dfc-4482-92a3-54c7323a223f", "rel": "bookmark"}]}, {"uuid": "d019a2cb-baef-4905-a238-0e1a54613e08", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/d019a2cb-baef-4905-a238-0e1a54613e08", "rel": "self"}, {"href": "http://localhost/deploy_templates/d019a2cb-baef-4905-a238-0e1a54613e08", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait [0.093828s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/traits/CUSTOM_1 GOT Response: 204 No Content Openstack-Request-Id: req-ffa83719-a229-4bac-b6b2-f447374ec606 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_allowed [0.039041s] ... 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-02d1541b-ce80-429f-b7c8-ebb99b9c3011 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "8640609d-4e64-4fc2-bbd1-293ffef41513", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/8640609d-4e64-4fc2-bbd1-293ffef41513", "rel": "self"}, {"href": "http://localhost/deploy_templates/8640609d-4e64-4fc2-bbd1-293ffef41513", "rel": "bookmark"}]}, {"uuid": "9138d917-6a41-4e24-9151-92cf9e5b755e", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/deploy_templates/9138d917-6a41-4e24-9151-92cf9e5b755e", "rel": "self"}, {"href": "http://localhost/deploy_templates/9138d917-6a41-4e24-9151-92cf9e5b755e", "rel": "bookmark"}]}, {"uuid": "e2ceb6c1-f4cb-46e3-a9c2-542f38ec1f82", "name": "CUSTOM_DT3", "links": [{"href": "http://localhost/v1/deploy_templates/e2ceb6c1-f4cb-46e3-a9c2-542f38ec1f82", "rel": "self"}, {"href": "http://localhost/deploy_templates/e2ceb6c1-f4cb-46e3-a9c2-542f38ec1f82", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_many [0.098848s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b8d1bb34-7337-4273-86b9-6d78a04fb762 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "d8f74151-f101-4f2f-a695-e21544c41fc1", "created_at": "2025-05-07T22:57:52.656067+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/d8f74151-f101-4f2f-a695-e21544c41fc1", "rel": "self"}, {"href": "http://localhost/allocations/d8f74151-f101-4f2f-a695-e21544c41fc1", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "4d750456-570c-472f-876a-01e061d9ca9e", "created_at": "2025-05-07T22:57:52.656891+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/4d750456-570c-472f-876a-01e061d9ca9e", "rel": "self"}, {"href": "http://localhost/allocations/4d750456-570c-472f-876a-01e061d9ca9e", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "36376655-4f29-4c0f-a514-f3453fabd199", "created_at": "2025-05-07T22:57:52.657869+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/36376655-4f29-4c0f-a514-f3453fabd199", "rel": "self"}, {"href": "http://localhost/allocations/36376655-4f29-4c0f-a514-f3453fabd199", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "fa84c67e-f227-439c-9160-4da2fc45ffa1", "created_at": "2025-05-07T22:57:52.658690+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/fa84c67e-f227-439c-9160-4da2fc45ffa1", "rel": "self"}, {"href": "http://localhost/allocations/fa84c67e-f227-439c-9160-4da2fc45ffa1", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "895b03b2-50c0-4643-8eac-03b7a628b01e", "created_at": "2025-05-07T22:57:52.659482+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/895b03b2-50c0-4643-8eac-03b7a628b01e", "rel": "self"}, {"href": "http://localhost/allocations/895b03b2-50c0-4643-8eac-03b7a628b01e", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_portgroup_subresource [0.057356s] ... 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-7a6047ac-8643-4c69-92a8-b1ed5e4bdc68 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_sort_key_invalid [0.044207s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates?sort_key=extra WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6f2c970d-e2d6-4852-8076-13d64561bf34 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/deploy_templates?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4da4124a-f00b-4a23-ac8b-155276e4b614 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/deploy_templates?sort_key=steps WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-774fa2b6-8511-4999-81ef-0c518d2e518b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value steps is an invalid field for sorting\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource [0.042506s] ... 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-99334f87-dc1f-4b12-9ff2-8768281eab51 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_one [0.059165s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-def50660-1a3c-4e25-b7fa-d02438f035af X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "7ffcb6bb-3611-4e4c-bc4e-201ca4fa9696", "created_at": "2025-05-07T22:57:52.758839+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/7ffcb6bb-3611-4e4c-bc4e-201ca4fa9696", "rel": "self"}, {"href": "http://localhost/allocations/7ffcb6bb-3611-4e4c-bc4e-201ca4fa9696", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_locked [0.095238s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/traits/CUSTOM_1 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-fc8845be-7695-4e8a-99c5-408e81d8588f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host host1, please retry after the current operation is completed.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource_no_port_id [0.032230s] ... 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-44d6a7a6-6fa1-4bb3-890a-17787ca6f7be X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: port_uuid\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_not_found [0.038344s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/traits/CUSTOM_1 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-24210004-d4e9-45fd-8334-4630ccb9979b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_multi [0.075398s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/d5e698f3-26bf-4b80-9812-751ee82b40d4 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-c2dafacc-bd7c-442a-a6c4-6329c59be189 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d5e698f3-26bf-4b80-9812-751ee82b40d4", "created_at": "2025-05-07T22:57:52.765399+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d5e698f3-26bf-4b80-9812-751ee82b40d4", "rel": "self"}, {"href": "http://localhost/deploy_templates/d5e698f3-26bf-4b80-9812-751ee82b40d4", "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}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource [0.049517s] ... 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-649aeb47-233c-4c66-9797-824e2f921002 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource_no_connector_id [0.032387s] ... 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-a955868a-4eba-4a8e-81cc-a2b35acc6051 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: connector_uuid\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_trait_not_found [0.053626s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/traits/CUSTOM_12 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-27088425-769d-4639-8f45-c233f45cdd84 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 doesn't have a trait 'CUSTOM_12'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key [0.104993s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2646ccfa-4fcc-465c-906d-0a4e218db40b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "1f945664-f524-4539-9564-3bd984fb4cd8", "created_at": "2025-05-07T22:57:52.840687+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/1f945664-f524-4539-9564-3bd984fb4cd8", "rel": "self"}, {"href": "http://localhost/allocations/1f945664-f524-4539-9564-3bd984fb4cd8", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "5e2a1034-f4c6-4e01-b873-96788dd521e2", "created_at": "2025-05-07T22:57:52.839839+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/5e2a1034-f4c6-4e01-b873-96788dd521e2", "rel": "self"}, {"href": "http://localhost/allocations/5e2a1034-f4c6-4e01-b873-96788dd521e2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "5ff62680-83c8-45e3-870d-8d7cb4798a5e", "created_at": "2025-05-07T22:57:52.837439+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/5ff62680-83c8-45e3-870d-8d7cb4798a5e", "rel": "self"}, {"href": "http://localhost/allocations/5ff62680-83c8-45e3-870d-8d7cb4798a5e", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_root_non_existent [0.086569s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/ee15d9dc-2e33-44d7-a0b4-f1f6910360b9 WITH [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7b3c146b-16be-46ca-89ec-45f61646a05b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_with_bad_version [0.038763s] ... 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-d4068fd6-64db-425a-9638-07c8199a39b3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.36 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_targets_subresource [0.046104s] ... 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-0e775330-d5d0-4dbf-9948-bc6696de5c12 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits [0.040943s] ... 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-1eca3f6b-80bc-4753-8569-0453f115e332 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"traits": ["CUSTOM_1", "CUSTOM_2"]} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_allowed [0.063394s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?sort_key=name WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b5935983-6f9b-43a9-99ef-78f40c175c25 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "4a9ef00f-f858-494f-94c6-4eac3e7fade2", "created_at": "2025-05-07T22:57:52.938577+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/4a9ef00f-f858-494f-94c6-4eac3e7fade2", "rel": "self"}, {"href": "http://localhost/allocations/4a9ef00f-f858-494f-94c6-4eac3e7fade2", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "1bd0550d-9969-4c45-8326-ecb2472a71dd", "created_at": "2025-05-07T22:57:52.933634+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/1bd0550d-9969-4c45-8326-ecb2472a71dd", "rel": "self"}, {"href": "http://localhost/allocations/1bd0550d-9969-4c45-8326-ecb2472a71dd", "rel": "bookmark"}], "node_uuid": null}, {"uuid": "a9072eab-f79c-4df1-94ac-017b62d47707", "created_at": "2025-05-07T22:57:52.932573+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/a9072eab-f79c-4df1-94ac-017b62d47707", "rel": "self"}, {"href": "http://localhost/allocations/a9072eab-f79c-4df1-94ac-017b62d47707", "rel": "bookmark"}], "node_uuid": null}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_error [0.054122s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?associated=blah WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-91cf2c32-5b2f-4bcd-99c8-5dd80e11c33b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid associated: Unrecognized value 'blah', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_add_too_high_index_step_fail [0.080965s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/db2c2f5f-5794-4425-bd9b-a8372e96f613 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-79c1b3f3-160a-4036-8e55-70f60c048bc1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/2', 'op': 'add', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}}'. Reason: can't insert outside of list\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_bad_version [0.044023s] ... 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-0986b7f4-ae5b-47c6-a97e-46b1795f3995 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.36 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_node_not_found [0.035360s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/badname/traits WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0f9dc80f-e827-4d3f-b32e-3275adc73312 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node badname could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_sort_key_invalid [0.075344s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d4673943-3477-46e0-91c3-c73cebdbe2d8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/allocations?sort_key=extra WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2a9b0a99-2c62-47ad-8161-429b46f37a28 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/allocations?sort_key=internal_info WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6a23be5b-2dda-4080-9eb9-c4c7c6676035 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"internal_info\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/allocations?sort_key=properties WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-be579578-98b1-44c1-8caf-e82c275919c0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"properties\\\" is an invalid field for sorting\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_insensitive [0.086405s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?associated=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ae6a0462-1296-4876-afba-f62a4c09226c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "fe66bb97-ff1e-4946-82fa-cbfeb17fb91f", "instance_uuid": "78ec15b4-dbbf-4f58-8f25-d3a57d58f7e2", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/fe66bb97-ff1e-4946-82fa-cbfeb17fb91f", "rel": "self"}, {"href": "http://localhost/nodes/fe66bb97-ff1e-4946-82fa-cbfeb17fb91f", "rel": "bookmark"}]}, {"uuid": "89ef1311-f64a-404d-9f2e-04c476ef16f2", "instance_uuid": "db9dc4c6-02f0-46dd-9a7d-9ad17bc2a375", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/89ef1311-f64a-404d-9f2e-04c476ef16f2", "rel": "self"}, {"href": "http://localhost/nodes/89ef1311-f64a-404d-9f2e-04c476ef16f2", "rel": "bookmark"}]}, {"uuid": "96e196be-6693-4055-841c-b65a54dca2b7", "instance_uuid": "f146e111-2c28-45cb-8f86-4f49aee44d1f", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/96e196be-6693-4055-841c-b65a54dca2b7", "rel": "self"}, {"href": "http://localhost/nodes/96e196be-6693-4055-841c-b65a54dca2b7", "rel": "bookmark"}]}, {"uuid": "308a6e18-ff63-4a17-836c-b4c909484284", "instance_uuid": "a115652f-c289-4f16-8996-48afee1a3511", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/308a6e18-ff63-4a17-836c-b4c909484284", "rel": "self"}, {"href": "http://localhost/nodes/308a6e18-ff63-4a17-836c-b4c909484284", "rel": "bookmark"}]}]} GET /v1/nodes?associated=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-87348988-0a4f-4d37-87a0-44ce313474f4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "fe66bb97-ff1e-4946-82fa-cbfeb17fb91f", "instance_uuid": "78ec15b4-dbbf-4f58-8f25-d3a57d58f7e2", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/fe66bb97-ff1e-4946-82fa-cbfeb17fb91f", "rel": "self"}, {"href": "http://localhost/nodes/fe66bb97-ff1e-4946-82fa-cbfeb17fb91f", "rel": "bookmark"}]}, {"uuid": "89ef1311-f64a-404d-9f2e-04c476ef16f2", "instance_uuid": "db9dc4c6-02f0-46dd-9a7d-9ad17bc2a375", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/89ef1311-f64a-404d-9f2e-04c476ef16f2", "rel": "self"}, {"href": "http://localhost/nodes/89ef1311-f64a-404d-9f2e-04c476ef16f2", "rel": "bookmark"}]}, {"uuid": "96e196be-6693-4055-841c-b65a54dca2b7", "instance_uuid": "f146e111-2c28-45cb-8f86-4f49aee44d1f", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/96e196be-6693-4055-841c-b65a54dca2b7", "rel": "self"}, {"href": "http://localhost/nodes/96e196be-6693-4055-841c-b65a54dca2b7", "rel": "bookmark"}]}, {"uuid": "308a6e18-ff63-4a17-836c-b4c909484284", "instance_uuid": "a115652f-c289-4f16-8996-48afee1a3511", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/308a6e18-ff63-4a17-836c-b4c909484284", "rel": "self"}, {"href": "http://localhost/nodes/308a6e18-ff63-4a17-836c-b4c909484284", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_foo [0.075244s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/f17e7476-a5bf-4803-9e52-f8545e61e042 WITH [{'path': '/foo', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0fbfea10-c473-4347-a5b3-4f83e251ea8c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body [0.047577s] ... 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-ca22f003-f1ba-4ced-acb8-1ad649127068 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for body: Additional properties are not allowed ('trait' was unexpected)\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links [0.054376s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f4d22e54-a271-418b-98fb-b851a7e4bbf1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "d0fded0b-4e9e-44e7-b448-112c9eb31976", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/d0fded0b-4e9e-44e7-b448-112c9eb31976", "rel": "self"}, {"href": "http://localhost/nodes/d0fded0b-4e9e-44e7-b448-112c9eb31976", "rel": "bookmark"}]}, {"uuid": "28871a2b-3ef3-4cef-92d9-6b651b55d4c0", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/28871a2b-3ef3-4cef-92d9-6b651b55d4c0", "rel": "self"}, {"href": "http://localhost/nodes/28871a2b-3ef3-4cef-92d9-6b651b55d4c0", "rel": "bookmark"}]}, {"uuid": "70bf3400-6c8d-4b6b-b8e4-5861778164dd", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/70bf3400-6c8d-4b6b-b8e4-5861778164dd", "rel": "self"}, {"href": "http://localhost/nodes/70bf3400-6c8d-4b6b-b8e4-5861778164dd", "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=70bf3400-6c8d-4b6b-b8e4-5861778164dd"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name [0.079225s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/CUSTOM_DT1 GOT Response: 204 No Content Openstack-Request-Id: req-85de6a85-5a1a-4326-9be4-d23f99f541cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body_2 [0.046754s] ... 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-b8100f1e-d65b-48e4-addc-fd29d67d59ee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A single node trait may be added via PUT /v1/nodes//traits/ with no body, or all node traits may be replaced via PUT /v1/nodes//traits with the list of traits specified in the request body.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits [0.045821s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits WITH {'traits': ['CUSTOM_3']} GOT Response: 204 No Content Openstack-Request-Id: req-36d13e3f-459f-45f7-ba1c-f6c163a81a66 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_non_existent [0.061996s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/blah GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-88021abb-1df8-49b8-b638-6dce6ffcd831 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template blah could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_multi [0.127005s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/172426d6-14a3-4a7c-97c3-504883f774e5 WITH [{'path': '/steps/1', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fd3b594a-a562-4e7d-bb91-387e7046c4a1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "172426d6-14a3-4a7c-97c3-504883f774e5", "created_at": "2025-05-07T22:57:53.126645+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/172426d6-14a3-4a7c-97c3-504883f774e5", "rel": "self"}, {"href": "http://localhost/deploy_templates/172426d6-14a3-4a7c-97c3-504883f774e5", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration2", "args": {}, "priority": 10}]} {2} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_empty [0.041411s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits WITH {'traits': []} GOT Response: 204 No Content Openstack-Request-Id: req-3bfb0874-e425-4d2d-ac34-592999eea14c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_with_json [0.068457s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/CUSTOM_DT1.json GOT Response: 204 No Content Openstack-Request-Id: req-decc38e6-d1cf-4454-829c-18345ce68bc5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {2} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_fails_with_bad_version [0.036895s] ... 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.api.controllers.v1.test_deploy_template.TestPatch.test_remove_name [0.097460s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/f086865d-d824-4751-8e60-a7466cdd904b WITH [{'path': '/name', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-75c3ca28-4cd1-4092-90f3-2b759d803e1c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'name' is a required property\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_bad_trait [0.038986s] ... 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-8a4c9bfc-7907-4d98-8355-98ae48cbd979 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for body: 'BAD_TRAIT' is not valid under any of the given schemas. Possible root cause: 'BAD_TRAIT' does not match '^CUSTOM_[A-Z0-9_]+$'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_name_with_json_not_found [0.066480s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/CUSTOM_DT1.json GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-241b1e5c-bb05-438a-860e-905233e1f384 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template CUSTOM_DT1.json could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_property_fail [0.063430s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/9d7c47f8-2606-4049-96a7-10b39b21a648 WITH [{'path': '/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-38b3eb9c-5efd-433b-828f-a9a413587505 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /non-existent. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid [0.061549s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/6e61d65f-ee66-435c-8ae8-4a2a6fa76e06 GOT Response: 204 No Content Openstack-Request-Id: req-e4306ba0-6d91-49cd-a19c-d352dbc27c46 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_no_body [0.125442s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ef46eb88-eab4-4e61-bcb9-fc21f9654a4d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A single node trait may be added via PUT /v1/nodes//traits/ with no body, or all node traits may be replaced via PUT /v1/nodes//traits with the list of traits specified in the request body.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_custom_fields [0.329292s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fields=driver_info,uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-06ee2702-b5cf-4510-b2c5-dd882f1ef8c6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "a48ddfc6-a8d5-43dd-997b-4c460d0998c8", "driver_info": {"fake": "value"}, "links": [{"href": "http://localhost/v1/nodes/a48ddfc6-a8d5-43dd-997b-4c460d0998c8", "rel": "self"}, {"href": "http://localhost/nodes/a48ddfc6-a8d5-43dd-997b-4c460d0998c8", "rel": "bookmark"}]}, {"uuid": "b444d59f-f7c9-4ca2-8acc-15be3545e7da", "driver_info": {"fake": "value"}, "links": [{"href": "http://localhost/v1/nodes/b444d59f-f7c9-4ca2-8acc-15be3545e7da", "rel": "self"}, {"href": "http://localhost/nodes/b444d59f-f7c9-4ca2-8acc-15be3545e7da", "rel": "bookmark"}]}, {"uuid": "0512463d-ac75-4bc4-9237-5e8adf747c76", "driver_info": {"fake": "value"}, "links": [{"href": "http://localhost/v1/nodes/0512463d-ac75-4bc4-9237-5e8adf747c76", "rel": "self"}, {"href": "http://localhost/nodes/0512463d-ac75-4bc4-9237-5e8adf747c76", "rel": "bookmark"}]}], "next": "http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=driver_info,uuid&limit=3&marker=0512463d-ac75-4bc4-9237-5e8adf747c76"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_step_fail [0.088932s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/308fefe8-d99e-44af-a204-e1a97aa85b6a WITH [{'path': '/steps/1', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-488bc8d2-5854-49d1-a9bb-f41778e69cbe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/1', 'op': 'remove'}'. Reason: can't remove a non-existent object '1'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid_with_json [0.072456s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/1546c7ba-8b30-469d-a2d3-5b568dffcdd7.json GOT Response: 204 No Content Openstack-Request-Id: req-b63db822-fdb0-4eeb-aac7-287ba04bdb89 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {2} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_too_long_trait [0.073135s] ... 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-6df12f5c-62eb-45eb-aadc-63c9d8d40197 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for body: 'CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT' is too long\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid_with_json_not_found [0.059728s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/e9f42dc5-4a03-4b8b-bf58-f6c316c51dea.json GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c8da9eb9-c257-46ad-9c3e-5684fc6e96a9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template e9f42dc5-4a03-4b8b-bf58-f6c316c51dea.json could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_non_existent_step_property_fail [0.079835s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/e0d57ecd-589d-4ba1-8d7f-1db6abf88af6 WITH [{'path': '/steps/0/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4c99b8f9-7dbe-4294-9ba1-8f5fc289b5f7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/0/non-existent', 'op': 'remove'}'. Reason: can't remove a non-existent object 'non-existent'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_default_limit [0.104253s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-71a0eda0-b5e2-4f63-a2b9-f020223fa224 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "1c9206f9-f7da-4b9a-8a68-db740efc4042", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1c9206f9-f7da-4b9a-8a68-db740efc4042", "rel": "self"}, {"href": "http://localhost/nodes/1c9206f9-f7da-4b9a-8a68-db740efc4042", "rel": "bookmark"}]}, {"uuid": "c6222c41-37cf-482e-9bda-889afc096191", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/c6222c41-37cf-482e-9bda-889afc096191", "rel": "self"}, {"href": "http://localhost/nodes/c6222c41-37cf-482e-9bda-889afc096191", "rel": "bookmark"}]}, {"uuid": "b226b9fb-7fa6-4efd-8c64-8ca0d912b2bc", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/b226b9fb-7fa6-4efd-8c64-8ca0d912b2bc", "rel": "self"}, {"href": "http://localhost/nodes/b226b9fb-7fa6-4efd-8c64-8ca0d912b2bc", "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=b226b9fb-7fa6-4efd-8c64-8ca0d912b2bc"} {2} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_with_chassis [0.065583s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/traits WITH {'traits': ['CUSTOM_3']} GOT Response: 204 No Content Openstack-Request-Id: req-84ea876d-639b-4d39-ad74-7a097badd45f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_invalid_api_version [0.067910s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/b1576a42-169d-4e2f-9b06-23c59c18e880 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.TestListNodes.test_collection_links_instance_uuid_param [0.054949s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?instance_uuid=dc9df9dc-9717-44e5-b35e-cbbc073f5058 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-690722da-5ed0-4784-90a4-23073b8b7cd2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "38d3b798-e352-421e-aafc-9381842154e4", "instance_uuid": "dc9df9dc-9717-44e5-b35e-cbbc073f5058", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/38d3b798-e352-421e-aafc-9381842154e4", "rel": "self"}, {"href": "http://localhost/nodes/38d3b798-e352-421e-aafc-9381842154e4", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links [0.057686s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a4b9e51a-01d7-402a-8232-ba599ca35c95 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "a23a00b5-7989-4e95-940c-568528c1ce21", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/a23a00b5-7989-4e95-940c-568528c1ce21", "rel": "self"}, {"href": "http://localhost/ports/a23a00b5-7989-4e95-940c-568528c1ce21", "rel": "bookmark"}]}, {"uuid": "e5e72457-eaf5-4735-862c-1817e0df977c", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/e5e72457-eaf5-4735-862c-1817e0df977c", "rel": "self"}, {"href": "http://localhost/ports/e5e72457-eaf5-4735-862c-1817e0df977c", "rel": "bookmark"}]}, {"uuid": "5da8e86b-73ad-49d4-88c2-e71a687765d9", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/5da8e86b-73ad-49d4-88c2-e71a687765d9", "rel": "self"}, {"href": "http://localhost/ports/5da8e86b-73ad-49d4-88c2-e71a687765d9", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=5da8e86b-73ad-49d4-88c2-e71a687765d9"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail [0.038509s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ef7d6355-d66b-4080-8ea9-d36e138ad165 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:53.626947+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_deploy_template.TestDelete.test_delete_old_api_version [0.057755s] ... 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.TestListNodes.test_detail_against_single [0.031263s] ... 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-7711e379-fe8c-4f91-8286-538d906bde01 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links_custom_fields [0.062818s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?fields=address,uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-eea34d90-1346-47b0-859d-07a18f15bece X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "80d28406-59e8-4e2d-af7c-cce1fad89893", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/80d28406-59e8-4e2d-af7c-cce1fad89893", "rel": "self"}, {"href": "http://localhost/ports/80d28406-59e8-4e2d-af7c-cce1fad89893", "rel": "bookmark"}]}, {"uuid": "87264413-a877-4554-92bd-896e164e40b6", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/87264413-a877-4554-92bd-896e164e40b6", "rel": "self"}, {"href": "http://localhost/ports/87264413-a877-4554-92bd-896e164e40b6", "rel": "bookmark"}]}, {"uuid": "cca7caf2-6f0d-42e1-8f56-8d7a8a428b1e", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/cca7caf2-6f0d-42e1-8f56-8d7a8a428b1e", "rel": "self"}, {"href": "http://localhost/ports/cca7caf2-6f0d-42e1-8f56-8d7a8a428b1e", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=cca7caf2-6f0d-42e1-8f56-8d7a8a428b1e"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_forbidden [0.046263s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b5f9257b-fa23-417a-ae06-ccf116af794f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create [0.084173s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'd799175c-c585-41cb-bbc2-ea4bf7f2f91e', '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/d799175c-c585-41cb-bbc2-ea4bf7f2f91e Openstack-Request-Id: req-708ed629-dbe3-4de3-aa98-59feca17b44c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d799175c-c585-41cb-bbc2-ea4bf7f2f91e", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d799175c-c585-41cb-bbc2-ea4bf7f2f91e", "rel": "self"}, {"href": "http://localhost/deploy_templates/d799175c-c585-41cb-bbc2-ea4bf7f2f91e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} GET /v1/deploy_templates/d799175c-c585-41cb-bbc2-ea4bf7f2f91e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3e29ba06-3cee-4888-8f29-a46b54974750 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d799175c-c585-41cb-bbc2-ea4bf7f2f91e", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/d799175c-c585-41cb-bbc2-ea4bf7f2f91e", "rel": "self"}, {"href": "http://localhost/deploy_templates/d799175c-c585-41cb-bbc2-ea4bf7f2f91e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links_default_limit [0.062094s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d0419216-6d72-47f9-abc0-1c56f53a06ba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "93b2f66a-a684-40ba-831a-8c0533a9b7a0", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/93b2f66a-a684-40ba-831a-8c0533a9b7a0", "rel": "self"}, {"href": "http://localhost/ports/93b2f66a-a684-40ba-831a-8c0533a9b7a0", "rel": "bookmark"}]}, {"uuid": "2ccf1981-ed3f-44e8-9f3e-26d6f0612d9e", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/2ccf1981-ed3f-44e8-9f3e-26d6f0612d9e", "rel": "self"}, {"href": "http://localhost/ports/2ccf1981-ed3f-44e8-9f3e-26d6f0612d9e", "rel": "bookmark"}]}, {"uuid": "af06d725-1bed-47fc-ae15-9ecbf1846254", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/af06d725-1bed-47fc-ae15-9ecbf1846254", "rel": "self"}, {"href": "http://localhost/ports/af06d725-1bed-47fc-ae15-9ecbf1846254", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=af06d725-1bed-47fc-ae15-9ecbf1846254"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid [0.068045s] ... 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-591ee2fc-a902-46a6-9973-2d4e29e638b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:53.759337+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"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail [0.058366s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e21bbca0-4f48-4b66-8b0e-28b88049e51b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:57:53.790774+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_deploy_template.TestPost.test_create_complex_step_args [0.092858s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'a4d5f5af-78a8-458b-ba66-a3ce4d715d6b', '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/a4d5f5af-78a8-458b-ba66-a3ce4d715d6b Openstack-Request-Id: req-eb2069d8-8fe6-494c-9a45-b291318bc5f2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a4d5f5af-78a8-458b-ba66-a3ce4d715d6b", "created_at": "2025-05-07T22:57:53.825221+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/a4d5f5af-78a8-458b-ba66-a3ce4d715d6b", "rel": "self"}, {"href": "http://localhost/deploy_templates/a4d5f5af-78a8-458b-ba66-a3ce4d715d6b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"foo": [{"bar": "baz"}]}, "priority": 10}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid_project_match [0.051498s] ... 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-c01ffe36-eb4b-4b24-b33b-f574efc13820 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:53.824536+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"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_instance_uuid_project_not_match [0.035930s] ... 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-bfd56190-a5f5-45d0-96ed-df5acffbb85f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": []} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_against_single [0.073808s] ... 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-7216e6fb-65b6-476f-84a4-654eb35c6c14 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_doesnt_contain_id [0.085014s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '7898ef1c-a24d-48b4-87d0-0e848f825c76', '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/7898ef1c-a24d-48b4-87d0-0e848f825c76 Openstack-Request-Id: req-7d11f83c-c582-4bdf-8e8e-f7852bae07ea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "7898ef1c-a24d-48b4-87d0-0e848f825c76", "created_at": "2025-05-07T22:57:53.901282+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/7898ef1c-a24d-48b4-87d0-0e848f825c76", "rel": "self"}, {"href": "http://localhost/deploy_templates/7898ef1c-a24d-48b4-87d0-0e848f825c76", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} GET /v1/deploy_templates/7898ef1c-a24d-48b4-87d0-0e848f825c76 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-25a6c659-dc58-44da-90c4-8f92a47231d2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "7898ef1c-a24d-48b4-87d0-0e848f825c76", "created_at": "2025-05-07T22:57:53.901282+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/7898ef1c-a24d-48b4-87d0-0e848f825c76", "rel": "self"}, {"href": "http://localhost/deploy_templates/7898ef1c-a24d-48b4-87d0-0e848f825c76", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbid_project_mismatch [0.045549s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?project=54321 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4ac406e2-fd2b-4bf3-ab86-75c200734e51 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_not_supported [0.043546s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail?node=test-node WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-9bf75c8d-08c3-4501-bd40-9f46fefb94f3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_ok [0.046186s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-838bfeec-6e91-4480-a493-6dc353212c7a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:57:53.960314+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.TestListNodes.test_detail_list_all_forbidden [0.071449s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-90c89263-a951-4121-97c6-49fb382f7009 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"nodes": [{"uuid": "f50e8c85-1876-43d4-98d7-1db4f61879e2", "created_at": "2025-05-07T22:57:53.960909+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/f50e8c85-1876-43d4-98d7-1db4f61879e2", "rel": "self"}, {"href": "http://localhost/nodes/f50e8c85-1876-43d4-98d7-1db4f61879e2", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f50e8c85-1876-43d4-98d7-1db4f61879e2/ports", "rel": "self"}, {"href": "http://localhost/nodes/f50e8c85-1876-43d4-98d7-1db4f61879e2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f50e8c85-1876-43d4-98d7-1db4f61879e2/states", "rel": "self"}, {"href": "http://localhost/nodes/f50e8c85-1876-43d4-98d7-1db4f61879e2/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f50e8c85-1876-43d4-98d7-1db4f61879e2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f50e8c85-1876-43d4-98d7-1db4f61879e2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f50e8c85-1876-43d4-98d7-1db4f61879e2/volume", "rel": "self"}, {"href": "http://localhost/nodes/f50e8c85-1876-43d4-98d7-1db4f61879e2/volume", "rel": "bookmark"}]}, {"uuid": "289d4879-4d24-4b75-abac-1f859c51f7dd", "created_at": "2025-05-07T22:57:53.962563+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/289d4879-4d24-4b75-abac-1f859c51f7dd", "rel": "self"}, {"href": "http://localhost/nodes/289d4879-4d24-4b75-abac-1f859c51f7dd", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/289d4879-4d24-4b75-abac-1f859c51f7dd/ports", "rel": "self"}, {"href": "http://localhost/nodes/289d4879-4d24-4b75-abac-1f859c51f7dd/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/289d4879-4d24-4b75-abac-1f859c51f7dd/states", "rel": "self"}, {"href": "http://localhost/nodes/289d4879-4d24-4b75-abac-1f859c51f7dd/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/289d4879-4d24-4b75-abac-1f859c51f7dd/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/289d4879-4d24-4b75-abac-1f859c51f7dd/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/289d4879-4d24-4b75-abac-1f859c51f7dd/volume", "rel": "self"}, {"href": "http://localhost/nodes/289d4879-4d24-4b75-abac-1f859c51f7dd/volume", "rel": "bookmark"}]}, {"uuid": "7f967f8b-41b1-4db7-8947-0dd60caaddcb", "created_at": "2025-05-07T22:57:53.964185+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/7f967f8b-41b1-4db7-8947-0dd60caaddcb", "rel": "self"}, {"href": "http://localhost/nodes/7f967f8b-41b1-4db7-8947-0dd60caaddcb", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/7f967f8b-41b1-4db7-8947-0dd60caaddcb/ports", "rel": "self"}, {"href": "http://localhost/nodes/7f967f8b-41b1-4db7-8947-0dd60caaddcb/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7f967f8b-41b1-4db7-8947-0dd60caaddcb/states", "rel": "self"}, {"href": "http://localhost/nodes/7f967f8b-41b1-4db7-8947-0dd60caaddcb/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7f967f8b-41b1-4db7-8947-0dd60caaddcb/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7f967f8b-41b1-4db7-8947-0dd60caaddcb/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7f967f8b-41b1-4db7-8947-0dd60caaddcb/volume", "rel": "self"}, {"href": "http://localhost/nodes/7f967f8b-41b1-4db7-8947-0dd60caaddcb/volume", "rel": "bookmark"}]}, {"uuid": "5f0ce352-6425-4834-a768-e28bd4b1dff0", "created_at": "2025-05-07T22:57:53.966363+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/5f0ce352-6425-4834-a768-e28bd4b1dff0", "rel": "self"}, {"href": "http://localhost/nodes/5f0ce352-6425-4834-a768-e28bd4b1dff0", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5f0ce352-6425-4834-a768-e28bd4b1dff0/ports", "rel": "self"}, {"href": "http://localhost/nodes/5f0ce352-6425-4834-a768-e28bd4b1dff0/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5f0ce352-6425-4834-a768-e28bd4b1dff0/states", "rel": "self"}, {"href": "http://localhost/nodes/5f0ce352-6425-4834-a768-e28bd4b1dff0/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5f0ce352-6425-4834-a768-e28bd4b1dff0/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5f0ce352-6425-4834-a768-e28bd4b1dff0/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5f0ce352-6425-4834-a768-e28bd4b1dff0/volume", "rel": "self"}, {"href": "http://localhost/nodes/5f0ce352-6425-4834-a768-e28bd4b1dff0/volume", "rel": "bookmark"}]}, {"uuid": "ee1546d4-e8b4-4c58-ab1b-9f767d6aef8d", "created_at": "2025-05-07T22:57:53.968361+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/ee1546d4-e8b4-4c58-ab1b-9f767d6aef8d", "rel": "self"}, {"href": "http://localhost/nodes/ee1546d4-e8b4-4c58-ab1b-9f767d6aef8d", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ee1546d4-e8b4-4c58-ab1b-9f767d6aef8d/ports", "rel": "self"}, {"href": "http://localhost/nodes/ee1546d4-e8b4-4c58-ab1b-9f767d6aef8d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ee1546d4-e8b4-4c58-ab1b-9f767d6aef8d/states", "rel": "self"}, {"href": "http://localhost/nodes/ee1546d4-e8b4-4c58-ab1b-9f767d6aef8d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ee1546d4-e8b4-4c58-ab1b-9f767d6aef8d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ee1546d4-e8b4-4c58-ab1b-9f767d6aef8d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ee1546d4-e8b4-4c58-ab1b-9f767d6aef8d/volume", "rel": "self"}, {"href": "http://localhost/nodes/ee1546d4-e8b4-4c58-ab1b-9f767d6aef8d/volume", "rel": "bookmark"}]}, {"uuid": "bfe4ba10-4e94-407a-b219-8559048aaad9", "created_at": "2025-05-07T22:57:53.970361+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/bfe4ba10-4e94-407a-b219-8559048aaad9", "rel": "self"}, {"href": "http://localhost/nodes/bfe4ba10-4e94-407a-b219-8559048aaad9", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/bfe4ba10-4e94-407a-b219-8559048aaad9/ports", "rel": "self"}, {"href": "http://localhost/nodes/bfe4ba10-4e94-407a-b219-8559048aaad9/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/bfe4ba10-4e94-407a-b219-8559048aaad9/states", "rel": "self"}, {"href": "http://localhost/nodes/bfe4ba10-4e94-407a-b219-8559048aaad9/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/bfe4ba10-4e94-407a-b219-8559048aaad9/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/bfe4ba10-4e94-407a-b219-8559048aaad9/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/bfe4ba10-4e94-407a-b219-8559048aaad9/volume", "rel": "self"}, {"href": "http://localhost/nodes/bfe4ba10-4e94-407a-b219-8559048aaad9/volume", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_error [0.071902s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '001d61f9-6c9d-4f23-8d1a-a1a4df610daa', '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-b95d5f99-746d-4f1a-b93a-f2bc31437a37 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_only_step_fail [0.494569s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/f0b00b4f-776d-4e17-a8b7-09ba1114c750 WITH [{'path': '/steps/0', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-dbfa8bf7-f4a9-4b15-9ba5-eb49ab687722 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: [] is too short\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query [0.051261s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0a774d4d-5e8e-42ce-be94-e20e142c5847 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:57:54.007240+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbidden_no_project [0.034500s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4d823406-77f8-4b53-85ea-23c4d1d956fb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_steps [0.051843s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/2235d5c0-be60-4bd5-9db9-04118483b383 WITH [{'path': '/steps', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-48ad153f-489b-4892-a904-46c73151c4e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'steps' is a required property\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query_false [0.054669s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6689d870-ffcb-4c95-ae67-fa765c08a3ec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} GET /v1/ports?detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e755d60c-a566-4277-acff-89a36c0d2902 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_query_false [0.049727s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d2279c4f-e47a-41d6-92a5-e9c3b6e9a381 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]} GET /v1/nodes?detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d200f283-8d07-483f-9824-e5569a7c3319 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_generate_uuid [0.090022s] ... 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/a4daf119-b0d7-4580-88e4-383b55dbb85d Openstack-Request-Id: req-768fd20f-39a6-4698-aa5c-3a85bcdcc649 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a4daf119-b0d7-4580-88e4-383b55dbb85d", "created_at": "2025-05-07T22:57:54.065655+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/a4daf119-b0d7-4580-88e4-383b55dbb85d", "rel": "self"}, {"href": "http://localhost/deploy_templates/a4daf119-b0d7-4580-88e4-383b55dbb85d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} GET /v1/deploy_templates/a4daf119-b0d7-4580-88e4-383b55dbb85d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e494d051-6319-4e0b-a537-dde197fc2cca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a4daf119-b0d7-4580-88e4-383b55dbb85d", "created_at": "2025-05-07T22:57:54.065655+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/a4daf119-b0d7-4580-88e4-383b55dbb85d", "rel": "self"}, {"href": "http://localhost/deploy_templates/a4daf119-b0d7-4580-88e4-383b55dbb85d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_uuid [0.037911s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/f05a4227-b1e0-47fe-af9e-b587c65a20f7 WITH [{'path': '/uuid', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-224ffc2d-b1f7-48c5-90c3-709d164e5e7c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: extra, name, steps, description\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_allowed [0.045903s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail?sort_key=pxe_enabled WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fe14b719-8207-4b66-9a34-136d08f26cb0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "5b74a878-b5a0-4544-b4a9-383d858c2072", "created_at": "2025-05-07T22:57:54.104763+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/5b74a878-b5a0-4544-b4a9-383d858c2072", "rel": "self"}, {"href": "http://localhost/ports/5b74a878-b5a0-4544-b4a9-383d858c2072", "rel": "bookmark"}], "portgroup_uuid": null}, {"uuid": "d41866db-f997-48f0-b905-30d49564172c", "created_at": "2025-05-07T22:57:54.108051+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/d41866db-f997-48f0-b905-30d49564172c", "rel": "self"}, {"href": "http://localhost/ports/d41866db-f997-48f0-b905-30d49564172c", "rel": "bookmark"}], "portgroup_uuid": null}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_snmpv3 [0.062172s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ce9187c8-8d2b-4d33-a821-bfddf1c0dde1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:54.118741+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"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_api_version [0.049768s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '697cbb0e-393d-4750-80d0-045027dc22bf', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_duplicate_step [0.058305s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/ef9ce7d8-8f32-4934-86e7-be09ed6f0b75 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-bc7904f6-f4bf-44ff-a77d-2c922cfb695c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: Duplicate deploy steps. A template cannot have multiple deploy steps with the same interface and step. Duplicates: interface: raid, step: create_configuration.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_not_allowed [0.051056s] ... 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-178bc995-20d3-4285-a966-bea8562c3d90 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.18 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_allowed [0.054640s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?sort_key=resource_class WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ab3567f6-a711-41a4-90dd-36b4fd4e0dc8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"nodes": [{"uuid": "faee5520-c92a-4074-8d05-844ede31ccb9", "created_at": "2025-05-07T22:57:54.183400+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/faee5520-c92a-4074-8d05-844ede31ccb9", "rel": "self"}, {"href": "http://localhost/nodes/faee5520-c92a-4074-8d05-844ede31ccb9", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/faee5520-c92a-4074-8d05-844ede31ccb9/ports", "rel": "self"}, {"href": "http://localhost/nodes/faee5520-c92a-4074-8d05-844ede31ccb9/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/faee5520-c92a-4074-8d05-844ede31ccb9/states", "rel": "self"}, {"href": "http://localhost/nodes/faee5520-c92a-4074-8d05-844ede31ccb9/states", "rel": "bookmark"}]}, {"uuid": "b6d08fce-739f-487c-81ec-ff3dc63ec84c", "created_at": "2025-05-07T22:57:54.181829+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/b6d08fce-739f-487c-81ec-ff3dc63ec84c", "rel": "self"}, {"href": "http://localhost/nodes/b6d08fce-739f-487c-81ec-ff3dc63ec84c", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b6d08fce-739f-487c-81ec-ff3dc63ec84c/ports", "rel": "self"}, {"href": "http://localhost/nodes/b6d08fce-739f-487c-81ec-ff3dc63ec84c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b6d08fce-739f-487c-81ec-ff3dc63ec84c/states", "rel": "self"}, {"href": "http://localhost/nodes/b6d08fce-739f-487c-81ec-ff3dc63ec84c/states", "rel": "bookmark"}]}, {"uuid": "a5aa3e64-0963-4d3b-8351-db8404945d02", "created_at": "2025-05-07T22:57:54.180230+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/a5aa3e64-0963-4d3b-8351-db8404945d02", "rel": "self"}, {"href": "http://localhost/nodes/a5aa3e64-0963-4d3b-8351-db8404945d02", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a5aa3e64-0963-4d3b-8351-db8404945d02/ports", "rel": "self"}, {"href": "http://localhost/nodes/a5aa3e64-0963-4d3b-8351-db8404945d02/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a5aa3e64-0963-4d3b-8351-db8404945d02/states", "rel": "self"}, {"href": "http://localhost/nodes/a5aa3e64-0963-4d3b-8351-db8404945d02/states", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_empty_steps [0.070503s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'd99e9453-f1a1-45ae-b5c7-12c767931f62', 'steps': [], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4aa68c4b-51a1-4157-9fb0-20bbd3db5911 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: [] is too short\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_and_fields [0.041859s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?detail=True&fields=name WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6d4cdfca-2f0e-4c1c-a7bc-af07799ca83f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_not_allowed [0.029991s] ... 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-e4f48253-2219-4623-9f09-6dbde35c57a6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.20 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_empty_step_list_fail [0.069505s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/0a8d2cf2-7b1e-434c-adb7-12d68f98bd50 WITH [{'path': '/steps', 'op': 'replace', 'value': []}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-805beeda-d3a5-417a-a6d9-667a52c564bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: [] is too short\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_false_and_fields [0.037291s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?detail=False&fields=internal_info WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-73123460-d721-4b10-af3b-2ae4ea0b9395 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"internal_info": {"bar": "buzz"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query [0.041317s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-22bec0f9-4147-4f46-a15e-a1815a1a1413 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:54.254101+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_deploy_template.TestPost.test_create_invalid_field_extra [0.070609s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'a97ea86b-59dd-4e26-8b59-00eae3f74ec9', '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-fb2b2738-2799-48e0-ba4a-17c0293a7a24 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 42 is not of type 'object', 'null'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_none [0.051251s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/8fb637aa-6120-428a-ae7c-89558f18d0f8 WITH [{'path': '/name', 'op': 'replace', 'value': None}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4e969e96-1c4f-4d8a-af68-072ab959300d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: None is not of type 'string'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_old_version [0.052884s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?detail=True WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-85edc9cf-1e0b-40e9-87a1-2911cdbe51a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_and_fields [0.047691s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?detail=True&fields=name WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e8b75a2f-cb38-41ee-9143-22fa10f55736 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_with_incorrect_api_usage [0.033510s] ... 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-8e441226-edd8-4acd-9b3e-793ccafee715 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": []} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_not_a_trait [0.060755s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/79087431-fa26-465e-99c2-42b6ebf6f728 WITH [{'path': '/name', 'op': 'replace', 'value': 'not-a-trait'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9aa956d9-28be-45d4-8751-1980124dd477 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'not-a-trait' is not valid under any of the given schemas. Possible root cause: 'not-a-trait' does not match '^CUSTOM_[A-Z0-9_]+$'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_foo [0.073048s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'af90b146-47a6-4526-a3ae-4faea28aebfc', '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-4ea635be-5ae4-4577-8d0c-dad1d9478b05 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: Additional properties are not allowed ('foo' was unexpected)\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_false_and_fields [0.043017s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?detail=False&fields=name WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a3cba996-f8d1-404e-8423-cb80127df69c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_empty [0.041020s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0b20cf87-c648-40cc-baaf-520dcb721197 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": []} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_old_version [0.038132s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?detail=True WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-00b17484-6130-4e52-9b6d-0a5cea608f6e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_name_too_long [0.051607s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/da0fdef5-6f5a-46e5-be1e-c76eea60134f WITH [{'path': '/name', 'op': 'replace', 'value': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8c990628-320b-41f6-9070-2ea3ee95fc08 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' is too long\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name [0.067756s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 42, 'uuid': '44925a8c-f01f-4e34-b245-1137469487a9', '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-1edc4bff-37c5-41c1-9cb2-0a2e77c3134b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 42 is not of type 'string'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_non_admin [0.077646s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d0dcc4e0-3e5c-4f77-87d7-e92263edb6ac X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"ports": [{"uuid": "540ca810-4995-45eb-a3a0-1ad8d2435965", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/540ca810-4995-45eb-a3a0-1ad8d2435965", "rel": "self"}, {"href": "http://localhost/ports/540ca810-4995-45eb-a3a0-1ad8d2435965", "rel": "bookmark"}]}, {"uuid": "c5275de8-bace-4813-9331-6a7018ce71ca", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/c5275de8-bace-4813-9331-6a7018ce71ca", "rel": "self"}, {"href": "http://localhost/ports/c5275de8-bace-4813-9331-6a7018ce71ca", "rel": "bookmark"}]}, {"uuid": "5349e7e1-3d47-4f8d-aa64-8782856769bb", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/5349e7e1-3d47-4f8d-aa64-8782856769bb", "rel": "self"}, {"href": "http://localhost/ports/5349e7e1-3d47-4f8d-aa64-8782856769bb", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_invalid_step_interface_fail [0.060822s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/371d787b-acca-46ff-8842-5c6b4154a866 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-cceb8a05-0853-4a57-83a8-921d036d9c0d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'foo' is not one of ['vendor', 'power', 'management', 'firmware', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_association_filter [0.081316s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?associated=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-84a04bcd-6b95-4c59-93d2-314ef7deb680 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "84b23bba-eeb5-4da3-9492-9991e40fe71c", "created_at": "2025-05-07T22:57:54.459716+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": "db07c029-258c-481d-b863-eb9e67843fd7", "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/84b23bba-eeb5-4da3-9492-9991e40fe71c", "rel": "self"}, {"href": "http://localhost/nodes/84b23bba-eeb5-4da3-9492-9991e40fe71c", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/84b23bba-eeb5-4da3-9492-9991e40fe71c/ports", "rel": "self"}, {"href": "http://localhost/nodes/84b23bba-eeb5-4da3-9492-9991e40fe71c/ports", "rel": "bookmark"}]}, {"uuid": "d6dd3e26-5de8-4dfe-afed-16c2db0651c1", "created_at": "2025-05-07T22:57:54.461149+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": "48e62573-c891-4703-ac75-169fbd9bb8e3", "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/d6dd3e26-5de8-4dfe-afed-16c2db0651c1", "rel": "self"}, {"href": "http://localhost/nodes/d6dd3e26-5de8-4dfe-afed-16c2db0651c1", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d6dd3e26-5de8-4dfe-afed-16c2db0651c1/ports", "rel": "self"}, {"href": "http://localhost/nodes/d6dd3e26-5de8-4dfe-afed-16c2db0651c1/ports", "rel": "bookmark"}]}, {"uuid": "43e7334b-fe18-4bcd-8ac1-f73c8c613e03", "created_at": "2025-05-07T22:57:54.463406+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": "5aa8671c-5261-44b8-a85b-fee8a5d40cac", "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/43e7334b-fe18-4bcd-8ac1-f73c8c613e03", "rel": "self"}, {"href": "http://localhost/nodes/43e7334b-fe18-4bcd-8ac1-f73c8c613e03", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/43e7334b-fe18-4bcd-8ac1-f73c8c613e03/ports", "rel": "self"}, {"href": "http://localhost/nodes/43e7334b-fe18-4bcd-8ac1-f73c8c613e03/ports", "rel": "bookmark"}]}, {"uuid": "a7ef16a2-2106-4654-b311-f2d2bc9151e5", "created_at": "2025-05-07T22:57:54.466879+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": "220271a4-d5c3-4b74-922d-7a03c79dcf29", "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/a7ef16a2-2106-4654-b311-f2d2bc9151e5", "rel": "self"}, {"href": "http://localhost/nodes/a7ef16a2-2106-4654-b311-f2d2bc9151e5", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a7ef16a2-2106-4654-b311-f2d2bc9151e5/ports", "rel": "self"}, {"href": "http://localhost/nodes/a7ef16a2-2106-4654-b311-f2d2bc9151e5/ports", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_name_none [0.066357s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': None, 'uuid': 'fcd87712-996b-4d9a-aa26-eebb0f71545f', '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-48ba509c-ce94-4093-83e9-4fd0daab3f32 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: None is not of type 'string'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_instance_uuid [0.037617s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?instance_uuid=669dbc4a-4ebe-4f2b-baeb-4bcdc076bde5 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c382e598-3f6d-4e92-81b7-ea69347ac407 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "54dfb47a-a4a2-4b63-81df-269c90f0e781", "created_at": "2025-05-07T22:57:54.508927+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": "669dbc4a-4ebe-4f2b-baeb-4bcdc076bde5", "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/54dfb47a-a4a2-4b63-81df-269c90f0e781", "rel": "self"}, {"href": "http://localhost/nodes/54dfb47a-a4a2-4b63-81df-269c90f0e781", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/54dfb47a-a4a2-4b63-81df-269c90f0e781/ports", "rel": "self"}, {"href": "http://localhost/nodes/54dfb47a-a4a2-4b63-81df-269c90f0e781/ports", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_non_admin_no_match [0.062275s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-be4fccd5-e147-466c-b5f2-01d3a59760c5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"ports": []} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_multi [0.060856s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/0524d2e4-7398-4e66-acee-b951b0c05589 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-211cb8ee-2e9f-4fb4-b134-6e0d43637368 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "0524d2e4-7398-4e66-acee-b951b0c05589", "created_at": "2025-05-07T22:57:54.497982+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/0524d2e4-7398-4e66-acee-b951b0c05589", "rel": "self"}, {"href": "http://localhost/deploy_templates/0524d2e4-7398-4e66-acee-b951b0c05589", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "priority": 11}, {"interface": "raid", "step": "create_configuration1", "args": {}, "priority": 11}, {"interface": "raid", "step": "create_configuration2", "args": {}, "priority": 11}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_steps [0.064891s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'b037ce4e-a386-4c4e-a449-790c213002bc', 'steps': {}, 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3ca5ab4e-cc7f-4265-96d8-6ecce626b610 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: {} is not of type 'array'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_empty [0.048003s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-39fc0330-18a4-4d7f-be6a-0e18de92ae5f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": []} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_not_supported [0.070002s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?node=test-node WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e4345767-8041-464e-804d-35985b299ea7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_name_already_exist [0.071504s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/0380ea2c-ab48-4b4b-9033-68a89242d2f2 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-c3ba0905-76fa-4539-8d52-52853c8b74be X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A deploy template with UUID 0380ea2c-ab48-4b4b-9033-68a89242d2f2 already exists.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields [0.044672s] ... 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-10d39cb7-2165-4780-b593-aa30ecae52fe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "power_interface": null, "raid_interface": null, "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_args1 [0.070902s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '235ce56e-8ab1-4ca1-a605-f2eecff6ced1', '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-b195c39f-6c92-471d-81a1-e179b6da1043 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'not a dict' is not of type 'object'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_non_existent_step_fail [0.049885s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/686e0692-9316-4eaa-a070-ae8c782e53d8 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-06f25abf-d2ec-4de3-a3b1-599cc553f2e2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/1', 'op': 'replace', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}}'. Reason: can't replace outside of list\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_ok [0.069951s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-148ab3c2-de23-4b6e-ba25-9517396f1617 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"ports": [{"uuid": "99c7a591-dae1-43f5-840d-f3d364df3f3b", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/99c7a591-dae1-43f5-840d-f3d364df3f3b", "rel": "self"}, {"href": "http://localhost/ports/99c7a591-dae1-43f5-840d-f3d364df3f3b", "rel": "bookmark"}]}, {"uuid": "a7245a50-5de7-469f-b60f-8feda36e7ed0", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/a7245a50-5de7-469f-b60f-8feda36e7ed0", "rel": "self"}, {"href": "http://localhost/ports/a7245a50-5de7-469f-b60f-8feda36e7ed0", "rel": "bookmark"}]}, {"uuid": "2742789c-80d6-402d-af18-5b249e825ef8", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/2742789c-80d6-402d-af18-5b249e825ef8", "rel": "self"}, {"href": "http://localhost/ports/2742789c-80d6-402d-af18-5b249e825ef8", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields_invalid_api_version [0.057953s] ... 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-53fffec4-2be4-4728-948a-0fc6e103dfec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_replace_step_invalid_interface [0.050645s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/68775b44-cbdb-49a6-ad1f-2b4680855425 WITH [{'path': '/steps/0/interface', 'op': 'replace', 'value': 'foo'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f8bff85c-1665-4c23-9c23-da60a983ef2a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'foo' is not one of ['vendor', 'power', 'management', 'firmware', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_args2 [0.060856s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'a0c6dcf6-b9d0-46dc-bf70-caeeaf437cc5', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': [], 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-64b887f5-e534-4a83-884f-702a48497ca3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: [] is not of type 'object'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_uuid_and_name [0.058816s] ... 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-9c2ec457-56db-4bd6-a8ec-424c58c23247 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:57:54.702262+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id [0.049786s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/79ded47a-47f9-45ab-919f-4aa017786fab WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c2ee4ff4-39c1-4507-a645-1b25009cda4e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "79ded47a-47f9-45ab-919f-4aa017786fab", "created_at": "2025-05-07T22:57:54.731198+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/79ded47a-47f9-45ab-919f-4aa017786fab", "rel": "self"}, {"href": "http://localhost/deploy_templates/79ded47a-47f9-45ab-919f-4aa017786fab", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_automated_clean_fields [0.107152s] ... 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-5d581a53-c251-4f43-bd2a-88d3ea01960b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"automated_clean": true, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_id_invalid_api_version [0.028277s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/805df30e-8846-4ccf-9603-6cfd47efb114 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\"}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_name [0.059556s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail?portgroup=fooname WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2a325682-f4bf-4365-8475-5a0589c6d2d2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:57:54.765382+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_deploy_template.TestPatch.test_update_by_name [0.046905s] ... 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-1786ba16-3be9-4ab9-a68f-05b89b5e725f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f3db61eb-1e8e-495e-84a3-dfc656cf3793", "created_at": "2025-05-07T22:57:54.808916+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/f3db61eb-1e8e-495e-84a3-dfc656cf3793", "rel": "self"}, {"href": "http://localhost/deploy_templates/f3db61eb-1e8e-495e-84a3-dfc656cf3793", "rel": "bookmark"}], "steps": [{"interface": "bios", "step": "apply_configuration", "args": {"foo": "bar"}, "priority": 42}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid [0.059110s] ... 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-124ae8c4-22a6-486f-abbc-e7034b066f49 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:57:54.820512+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.TestListNodes.test_get_boot_device [0.089058s] ... 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-56a77dc0-15c1-4aed-860a-7680eb76cc9c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"boot_device": "pxe", "persistent": true} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_old_api_version [0.043467s] ... 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\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_by_name [0.041369s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/spam/management/boot_device WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fe81a33a-aacc-4b14-92af-2f6cb69e9b8a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"boot_device": "pxe", "persistent": true} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_with_json [0.052668s] ... 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-cfa74b9c-6cc5-4d74-8801-61a166757307 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "dc8ddf46-3c14-42ef-8735-041c64ae5b84", "created_at": "2025-05-07T22:57:54.906520+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/dc8ddf46-3c14-42ef-8735-041c64ae5b84", "rel": "self"}, {"href": "http://localhost/deploy_templates/dc8ddf46-3c14-42ef-8735-041c64ae5b84", "rel": "bookmark"}], "steps": [{"interface": "bios", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_iface_not_supported [0.036072s] ... 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-791855bc-c1af-448d-9cc5-427b0938fe6d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_by_name_with_json_not_found [0.036834s] ... 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-807ce31e-e3fb-4f83-9e11-87128424d350 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template CUSTOM_DT1.json could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_custom_fields [0.064718s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fields=uuid,instance_info WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a8c8c916-a68c-4a3e-8a7f-1e6a3bbfc6e5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "369e0cfa-58e4-4b81-bb39-a74bfb69c333", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/369e0cfa-58e4-4b81-bb39-a74bfb69c333", "rel": "self"}, {"href": "http://localhost/nodes/369e0cfa-58e4-4b81-bb39-a74bfb69c333", "rel": "bookmark"}]}, {"uuid": "a966be8d-a5cc-440a-96c4-b81bd42b0913", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/a966be8d-a5cc-440a-96c4-b81bd42b0913", "rel": "self"}, {"href": "http://localhost/nodes/a966be8d-a5cc-440a-96c4-b81bd42b0913", "rel": "bookmark"}]}, {"uuid": "51c3a6dc-d04d-41fe-9bf7-7dd5358d9448", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/51c3a6dc-d04d-41fe-9bf7-7dd5358d9448", "rel": "self"}, {"href": "http://localhost/nodes/51c3a6dc-d04d-41fe-9bf7-7dd5358d9448", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_invalid_name [0.081899s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/d0e4a08b-1d6e-4f83-8cc8-ceecad1310a7 WITH [{'path': '/name', 'value': 'aa:bb_cc', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-83159e79-f980-4211-be74-3790145c7639 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'aa:bb_cc' is not valid under any of the given schemas. Possible root cause: 'aa:bb_cc' does not match '^CUSTOM_[A-Z0-9_]+$'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_custom_trait [0.045285s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/80f1679d-6e16-42c5-80b3-142ab0b2499a WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a12e7591-4dd7-4805-84a0-892f8d5eb704 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "80f1679d-6e16-42c5-80b3-142ab0b2499a", "created_at": "2025-05-07T22:57:55.074006+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/80f1679d-6e16-42c5-80b3-142ab0b2499a", "rel": "self"}, {"href": "http://localhost/deploy_templates/80f1679d-6e16-42c5-80b3-142ab0b2499a", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_custom_fields_as_list [0.090254s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fields=uuid&fields=instance_info WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-43a763fe-4976-45a6-8a3d-43eb18bd51f9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "61de40f7-c3e3-4975-b41f-c5acb2372f19", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/61de40f7-c3e3-4975-b41f-c5acb2372f19", "rel": "self"}, {"href": "http://localhost/nodes/61de40f7-c3e3-4975-b41f-c5acb2372f19", "rel": "bookmark"}]}, {"uuid": "15bed6d6-8025-47da-8f37-f892493bc4c5", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/15bed6d6-8025-47da-8f37-f892493bc4c5", "rel": "self"}, {"href": "http://localhost/nodes/15bed6d6-8025-47da-8f37-f892493bc4c5", "rel": "bookmark"}]}, {"uuid": "c45c8bd9-014c-4253-8493-b54f006d8843", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/c45c8bd9-014c-4253-8493-b54f006d8843", "rel": "self"}, {"href": "http://localhost/nodes/c45c8bd9-014c-4253-8493-b54f006d8843", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_foo [0.424429s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '4f67715f-924f-498b-9d0b-6095e991c0a7', '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-26d6cc64-8659-4e93-bae1-bf0a9f555e05 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: Additional properties are not allowed ('foo' was unexpected)\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_standard_trait [0.050648s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/330a3d9e-84ca-421d-b17e-dc8fc242da48 WITH [{'path': '/name', 'value': 'HW_CPU_X86_VMX', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1e05fc00-f123-42cd-9b8e-cbda3f0bbfca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "330a3d9e-84ca-421d-b17e-dc8fc242da48", "created_at": "2025-05-07T22:57:55.120289+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/330a3d9e-84ca-421d-b17e-dc8fc242da48", "rel": "self"}, {"href": "http://localhost/deploy_templates/330a3d9e-84ca-421d-b17e-dc8fc242da48", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_and_node_uuid [0.326276s] ... 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-05698e2e-2272-4a90-9fe4-bf0b98be918a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_not_found [0.039332s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/5e92d2b1-bc1d-404d-ae8b-354957874c00 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6e1eaa90-f1e5-4be4-a48c-8248bc290e02 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template 5e92d2b1-bc1d-404d-ae8b-354957874c00 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_fields_for_nova [0.104003s] ... 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-b5a26810-d629-4aea-860c-b0cca8ee2e81 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "c70e4fd5-a37a-4bc3-9e63-1a5b13005264", "power_state": null, "target_power_state": null, "provision_state": "available", "target_provision_state": null, "last_error": null, "maintenance": false, "instance_uuid": "2ac4caf3-1c26-418f-bc4e-201a68b9b236", "traits": ["CUSTOM_RAID5", "CUSTOM_TRAIT1"], "resource_class": null, "links": [{"href": "http://localhost/v1/nodes/c70e4fd5-a37a-4bc3-9e63-1a5b13005264", "rel": "self"}, {"href": "http://localhost/nodes/c70e4fd5-a37a-4bc3-9e63-1a5b13005264", "rel": "bookmark"}]}, {"uuid": "ea119876-00bf-42a5-bf7c-634954f29568", "power_state": null, "target_power_state": null, "provision_state": "available", "target_provision_state": null, "last_error": null, "maintenance": false, "instance_uuid": "463bc41e-4dc3-4b1f-b325-efcbd6c2e52f", "traits": ["CUSTOM_RAID5", "CUSTOM_TRAIT1"], "resource_class": null, "links": [{"href": "http://localhost/v1/nodes/ea119876-00bf-42a5-bf7c-634954f29568", "rel": "self"}, {"href": "http://localhost/nodes/ea119876-00bf-42a5-bf7c-634954f29568", "rel": "bookmark"}]}, {"uuid": "433a47b3-21d2-43e4-bfa8-a14b14a85839", "power_state": null, "target_power_state": null, "provision_state": "available", "target_provision_state": null, "last_error": null, "maintenance": false, "instance_uuid": "677e4d71-61bf-4909-a6f3-cc26673b0c40", "traits": ["CUSTOM_RAID5", "CUSTOM_TRAIT1"], "resource_class": null, "links": [{"href": "http://localhost/v1/nodes/433a47b3-21d2-43e4-bfa8-a14b14a85839", "rel": "self"}, {"href": "http://localhost/nodes/433a47b3-21d2-43e4-bfa8-a14b14a85839", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface1 [0.073026s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '547b86f6-f224-4324-8b66-38dd5ee5cb89', '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-c5c96310-5955-45fe-931e-e0269f044c75 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: [3] is not of type 'string'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_event_missing_madatory_field [0.036106s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_pagination_no_uuid [0.048931s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fields=name&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-38d3d58c-16b5-4ead-8cb1-002fd576f05c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"name": null, "links": [{"href": "http://localhost/v1/nodes/2064583c-f3c2-419b-87f9-a93638e5890c", "rel": "self"}, {"href": "http://localhost/nodes/2064583c-f3c2-419b-87f9-a93638e5890c", "rel": "bookmark"}]}, {"name": null, "links": [{"href": "http://localhost/v1/nodes/71dd1b95-da30-41a1-bc78-48dbe229cbd1", "rel": "self"}, {"href": "http://localhost/nodes/71dd1b95-da30-41a1-bc78-48dbe229cbd1", "rel": "bookmark"}]}], "next": "http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=71dd1b95-da30-41a1-bc78-48dbe229cbd1"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_non_admin [0.086358s] ... 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-e49a719d-fd8c-48ff-b7d3-220bddfbf5e7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:57:55.233000+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_event.TestEventValidator.test_invalid_event_type [0.048032s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface2 [0.069010s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '5c59c43e-fa78-4b65-97e4-fad2f2b05d65', '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-afe97c13-0c70-4d80-86de-b43cf10736d4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'foo' is not one of ['vendor', 'power', 'management', 'firmware', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field [0.050698s] ... 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-e76c9872-c218-4654-afa9-2d63d3c10097 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor"} {1} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_invalid_mac_network_port_event [0.052650s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_negative_priority [0.040621s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '7b3244c4-dea8-4634-947c-040e62ae70b2', '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-e60606ca-88ac-4b79-85ff-e46ec6c3be79 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: -1 is less than the minimum of 0\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_field_invalid_api_version [0.039163s] ... 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-809f26a4-c7b8-4623-93e7-96bce232c708 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_non_admin_no_match [0.087099s] ... 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-cf2a23fd-c363-433c-be81-896ecbb5b1d4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"ports": []} {1} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_missing_mandatory_fields_network_port_event [0.050953s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_priority [0.038902s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '43bd620a-ddba-4075-981b-43d42ec73bb9', '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-dc7275a8-556a-47f0-8a75-ad39ca946fa3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'not a number' does not match '^[0-9]+$'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields [0.047037s] ... 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-a8581b75-2715-47ff-ad06-f19a91b423dc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"conductor_group": "", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_simple_event_type [0.036592s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_step [0.047935s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '9b466427-f41d-42cf-9d2f-f3d21be837ab', 'steps': [{'interface': 'raid', 'step': 42, 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-94e6d54e-d210-4e70-b4d3-12833ba86220 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 42 is not of type 'string'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_older_api_version [0.058468s] ... 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-ea457e74-251c-4caf-b69e-03269014c9b5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields_invalid_api_version [0.036550s] ... 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-156ebc5a-11e2-4fac-aba4-2f844724c1ce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_long_name [0.052010s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': '23e6f737-2e54-44ae-bba6-318e9dc44ec8', '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/23e6f737-2e54-44ae-bba6-318e9dc44ec8 Openstack-Request-Id: req-cf35f65d-d3dd-4790-b57a-2bc245b7dba9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "23e6f737-2e54-44ae-bba6-318e9dc44ec8", "created_at": "2025-05-07T22:57:55.470206+00:00", "updated_at": null, "name": "CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/23e6f737-2e54-44ae-bba6-318e9dc44ec8", "rel": "self"}, {"href": "http://localhost/deploy_templates/23e6f737-2e54-44ae-bba6-318e9dc44ec8", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information [0.042537s] ... 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-ab65473b-2e6b-43b5-bc71-deb21282fc46 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"console_enabled": true, "console_info": {"test": "test-data"}} {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events [0.070558s] ... 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-41b8ee58-41d1-4ac7-8658-8afbeb235e98 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_by_name [0.042713s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/spam/states/console WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7008a6d7-798f-424c-8871-f5a204d5a9cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"console_enabled": true, "console_info": {"test": "test-data"}} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_not_a_trait [0.047318s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'not-a-trait', 'uuid': '8f49e1f7-26b0-4dcc-90f8-66177c0b4f23', '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-099aa500-7e93-4971-98a2-7ffc1c0aaec9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'not-a-trait' is not valid under any of the given schemas. Possible root cause: 'not-a-trait' does not match '^CUSTOM_[A-Z0-9_]+$'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_custom_fields [0.091273s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-de9cd987-ae9a-4cd0-8efd-da6a395576b7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "7f68e6ca-c5ec-4341-b784-98465631de0a", "extra": {}, "links": [{"href": "http://localhost/v1/ports/7f68e6ca-c5ec-4341-b784-98465631de0a", "rel": "self"}, {"href": "http://localhost/ports/7f68e6ca-c5ec-4341-b784-98465631de0a", "rel": "bookmark"}]}, {"uuid": "8176f59a-cfe3-4f06-857f-d6e55ec5b562", "extra": {}, "links": [{"href": "http://localhost/v1/ports/8176f59a-cfe3-4f06-857f-d6e55ec5b562", "rel": "self"}, {"href": "http://localhost/ports/8176f59a-cfe3-4f06-857f-d6e55ec5b562", "rel": "bookmark"}]}, {"uuid": "86ebc497-650e-4411-957b-c246e53bc6a2", "extra": {}, "links": [{"href": "http://localhost/v1/ports/86ebc497-650e-4411-957b-c246e53bc6a2", "rel": "self"}, {"href": "http://localhost/ports/86ebc497-650e-4411-957b-c246e53bc6a2", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_does_not_contain_event [0.062750s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'INVALID': 'fake.event'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b2186c7c-a718-4b40-a462-b34ed34e4326 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'event' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_console_disabled [0.044357s] ... 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-3de8325a-295a-4441-8ca4-89f3c97d4a6f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"console_enabled": false, "console_info": null} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_name_invalid_too_long [0.049399s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': '0ec377b0-cc9d-47e8-bbc5-4804a0d532a5', '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-21e134ff-e44a-48b0-8425-508d415ba222 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' is too long\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_invalid_event [0.062154s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/events WITH {'events': [{'event': 'invalid.event'}]} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c654dd1c-11b4-42a5-869a-797b5acd7294 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'invalid.event' is not one of ['network.bind_port', 'network.unbind_port', 'network.delete_port']\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_not_supported [0.048646s] ... 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-1401bf5c-53be-4e33-afc0-bcefebbd1a5b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support console (disabled or not implemented).\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_next_marker_no_uuid [0.089889s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?fields=address&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8746570e-726f-41fc-baa2-697b14afe428 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/ff0a131e-8a1a-4078-8e13-dd0ac0360658", "rel": "self"}, {"href": "http://localhost/ports/ff0a131e-8a1a-4078-8e13-dd0ac0360658", "rel": "bookmark"}]}, {"address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/e4940e7b-9b23-433e-bacf-bdcb94e6c555", "rel": "self"}, {"href": "http://localhost/ports/e4940e7b-9b23-433e-bacf-bdcb94e6c555", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=e4940e7b-9b23-433e-bacf-bdcb94e6c555"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_name [0.053564s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'uuid': 'abf5ffc7-4e6f-4967-9e76-b243b9cb8b5d', '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-8412fb3b-51d2-4186-93cb-0d45df58f2ee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'name' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_api_version [0.042703s] ... 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-f72b4380-30ac-46dc-a588-aaa850882bb5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_unsupported_api_version [0.060975s] ... 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-98af19b6-6940-46f4-9111-d3965dff0c1c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_field_steps [0.041438s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'a272ae5e-5c89-43df-b543-abe40a47296e', 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2746419b-a724-45f1-936b-4831f279ac14 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'steps' is a required property\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_api_version [0.077861s] ... 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-515719f1-c29d-4bc7-83db-1eb2a8536952 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_fields [0.041181s] ... 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-c6c2f817-50e9-4408-8606-be267af31e29 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field spongebob is not a valid field.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_args [0.053991s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '74f6ee51-6845-4fc2-b031-02ae07f6ccea', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-21b93fa9-0288-44eb-ada5-6e5489ae480e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'args' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_multiple_events [0.090379s] ... 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-4c7d7d14-9725-4646-bec9-60476dfbbfa4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_description_field [0.059346s] ... 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-b8dc8f64-6ba4-411e-bc2c-d9168c3cc41c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.51 {"description": "useful piece", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_interface [0.045876s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'e263a0c9-52e1-4d00-8900-a75f3371b306', 'steps': [{'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-dd7e7108-3f90-4a26-b451-6ed7a86f3770 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'interface' is a required property\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_fields [0.092423s] ... 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-aa54a4ae-5fb1-45f4-b84c-67a56cd8b375 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_priority [0.039042s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '89f73d9f-afd4-4f33-a517-58297073422b', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-52bfc580-3c2a-4a01-9558-c617985ff432 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'priority' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_disable_power_off_fields [0.063213s] ... 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-62d18bc1-9bdd-43fc-9e5d-6072a38635ce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.95 {"disable_power_off": true, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_bind_port_events [0.071382s] ... 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-60654dea-8d3c-4f85-873a-6aaf5e831e1a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_no_mandatory_step_field_step [0.051188s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '7f1e994d-d192-414a-810b-becbe7820bef', 'steps': [{'interface': 'raid', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-66fb05e9-4ba8-449a-ba03-e7499bfa1bca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for template: 'step' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state [0.058784s] ... 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-18a70c4e-a2c5-494b-8a11-dbd013bd657a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"state": "on"} {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_delete_port_events [0.078688s] ... 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-a87f6d4f-aec0-4607-aca9-fd5bca0b93e4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_is_smartnic [0.104763s] ... 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-d616e00d-9e77-4a66-a4bc-89e8fa166a04 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.52 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,is_smartnic WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fa1a6693-7249-46ed-8815-f7e4c6a50276 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.53 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "is_smartnic": true, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_standard_trait_name [0.049436s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'HW_CPU_X86_VMX', 'uuid': '56a52983-e85d-49aa-9a9f-1315cbd9a865', '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/56a52983-e85d-49aa-9a9f-1315cbd9a865 Openstack-Request-Id: req-c2aa9aa2-c174-4aaa-8fc0-d46071c7809b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "56a52983-e85d-49aa-9a9f-1315cbd9a865", "created_at": "2025-05-07T22:57:55.915794+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/56a52983-e85d-49aa-9a9f-1315cbd9a865", "rel": "self"}, {"href": "http://localhost/deploy_templates/56a52983-e85d-49aa-9a9f-1315cbd9a865", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_step_string_priority [0.040494s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': 'e0daf5ec-2f88-4ac1-ba29-571c0e6ee928', '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/e0daf5ec-2f88-4ac1-ba29-571c0e6ee928 Openstack-Request-Id: req-0c37e0ac-5a0d-41b1-a9d0-e0fd4e1cc2a0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e0daf5ec-2f88-4ac1-ba29-571c0e6ee928", "created_at": "2025-05-07T22:57:55.955805+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/e0daf5ec-2f88-4ac1-ba29-571c0e6ee928", "rel": "self"}, {"href": "http://localhost/deploy_templates/e0daf5ec-2f88-4ac1-ba29-571c0e6ee928", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": "42"}]} {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_host_id [0.059069s] ... 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-b9812fc0-ecdb-48dc-909a-88ac6271c91a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['binding:host_id', 'IS', 'NODE_UUID', 'IN', 'IRONIC'] is not of type 'string', 'null'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network [0.101625s] ... 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-47f9ab26-cbae-43bf-9847-6237380a2925 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,physical_network WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9cf81f70-d767-4b2b-9564-4da463e6af6e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "physical_network": "physnet1", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_steps_invalid_duplicate [0.061427s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/deploy_templates WITH {'name': 'CUSTOM_DT1', 'uuid': '22eaf5b4-4e16-429a-acc9-e26eade16641', '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-e5c42818-8e61-4371-b7ce-9a0247c5eb9b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: Duplicate deploy steps. A template cannot have multiple deploy steps with the same interface and step. Duplicates: interface: raid, step: create_configuration.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_vnic_type [0.090907s] ... 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-f3c5291c-38f9-4092-9278-646d9e72c176 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['binding:vnic_type', 'SHOULD', 'BE', 'TEXT'] is not of type 'string', 'null'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_properties_hidden_in_lower_version [0.060397s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-59d366dc-083f-41c8-93c8-1f7276c78d1d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.8 {"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "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_port.TestListPorts.test_get_custom_fields_physical_network_upgrade [0.122522s] ... 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-c592cd06-609c-443f-a28d-1cc266a6c7c7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_type_hidden_in_lower_version [0.074978s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2ba9c453-c4c9-4d6d-8618-51a31c641984 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "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"}]} {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_device_id [0.100110s] ... 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-5820e996-cb6d-44f3-a97e-c140c535bebc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for device_id: DEVICE_ID_SHOULD_BE_UUID\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_async [0.074731s] ... 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-b269a4f5-7a94-4733-a513-f3d6c1d24915 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one [0.134596s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-18c6830a-67cc-4f98-b3b9-b2eb39c87c49 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:57:56.227816+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_mac_address [0.104984s] ... 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-47547d1a-f93a-4d6c-8f8f-5776729e8cba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for mac_address: INVALID_MAC_ADDRESS\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state_iface_not_supported [0.390924s] ... 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-1711e9bb-df76-4342-8fc9-9fc3f2e54477 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state_versioning [0.056261s] ... 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-c590fee4-644f-4a2b-a236-63c64618e8ba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.63 {"state": "on"} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_delete [0.088544s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/drivers/fake-hardware-type/vendor_passthru/do_test GOT Response: 202 Accepted Openstack-Request-Id: req-04ebc5a8-30d5-41a5-9514-cde3ba1fa226 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_port_id [0.087671s] ... 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-0e609cc8-14e5-4159-a34d-49a2c1219a0a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for port_id: PORT_ID_SHOULD_BE_UUID\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_custom_fields [0.100355s] ... 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-27b10c7a-fa7f-432e-a54b-b10ada8e7ebf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"address": "52:54:00:cf:2d:31", "extra": {}, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_lessee_field [0.048285s] ... 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-e7285d2e-5713-45bc-9d1b-66dd2aeced00 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"lessee": "some-lucky-project", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_driver_not_found [0.065673s] ... 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-26c3bd39-ed4f-451a-83dd-c9712dccf372 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_status [0.064272s] ... 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-312f13e2-fcf6-443c-8e4c-a43e78ad8ae9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: ['status', 'SHOULD', 'BE', 'TEXT'] is not of type 'string'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields [0.048079s] ... 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-87b99688-23dc-4f15-9623-250e796f8f19 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"network_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_get [0.052119s] ... 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-076477fa-957b-41cd-af58-47d04b149948 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 "foo" {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_portgroup_is_none [0.081644s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-39019d91-3212-4fb5-8108-841ecf784004 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:57:56.426727+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_driver.TestListDrivers.test_driver_vendor_passthru_method_not_found [0.028774s] ... 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-3b427168-39a5-4381-8e6f-0d76c67a1601 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: method\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields_invalid_api_version [0.057431s] ... 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-5f99dbb7-97e8-4c7d-ba13-b4ac1afcc8dd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.19 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unbind_port_events [0.075782s] ... 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-59125f9b-d343-4587-bf23-ce6328c446b0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_methods [0.044898s] ... 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-6765dff1-731f-4cda-90de-f5a6ba6f703d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"foo": "bar"} GET /v1/drivers/fake-hardware-type/vendor_passthru/methods WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-41adf5b5-e9fc-4746-a0c6-3fba5f70843a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"foo": "bar"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor [0.098584s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?conductor=rocky.rocks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c0592433-ebb0-435a-b019-ee3fec620e2d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"nodes": []} GET /v1/nodes?conductor=fake.conductor WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c005b30a-b1eb-4f0a-a9e0-2cde48c177ce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"nodes": [{"uuid": "19a3e675-38f5-4122-9840-03d716dce1ee", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/19a3e675-38f5-4122-9840-03d716dce1ee", "rel": "self"}, {"href": "http://localhost/nodes/19a3e675-38f5-4122-9840-03d716dce1ee", "rel": "bookmark"}]}, {"uuid": "cc23b8f4-f49f-450d-b726-16c17825c019", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/cc23b8f4-f49f-450d-b726-16c17825c019", "rel": "self"}, {"href": "http://localhost/nodes/cc23b8f4-f49f-450d-b726-16c17825c019", "rel": "bookmark"}]}]} GET /v1/nodes?conductor=fake.conductor WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5ca0282b-fdbc-4cfe-83fa-c3bb12a3544d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"nodes": [{"uuid": "cc23b8f4-f49f-450d-b726-16c17825c019", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/cc23b8f4-f49f-450d-b726-16c17825c019", "rel": "self"}, {"href": "http://localhost/nodes/cc23b8f4-f49f-450d-b726-16c17825c019", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_put [0.056557s] ... 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-41be62e4-34d7-45c2-8144-0bdfedd4c246 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_ports_by_description [0.120581s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?description_contains=cat WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cae2a594-d743-4f81-9278-405c003f15d2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "d55c275d-a2e0-4574-a493-b23dcec88c00", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/d55c275d-a2e0-4574-a493-b23dcec88c00", "rel": "self"}, {"href": "http://localhost/ports/d55c275d-a2e0-4574-a493-b23dcec88c00", "rel": "bookmark"}]}]} GET /v1/ports?description_contains=dog WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6bb1f744-6641-4b6f-a45c-5a318b3ee147 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "2021cd5b-a274-41f6-828f-9f463f4769a2", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/2021cd5b-a274-41f6-828f-9f463f4769a2", "rel": "self"}, {"href": "http://localhost/ports/2021cd5b-a274-41f6-828f-9f463f4769a2", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unknown_event_property [0.094371s] ... 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-a7f9a627-0832-4b5f-917e-dfd4a615fcf6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'port_id' is a required property\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_sync [0.038756s] ... 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-db907fc0-ab49-4670-840a-aba334604fc6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"return_key": "return_value"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_child_node [0.068750s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/jsonschema/validators.py:1301: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers [0.056052s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e5f2a05a-bc02-4100-9976-728a8ebf5ac3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "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-dd53ec29-b539-41c8-9951-4e4fa8b4002b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "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-093809fb-616a-4bfc-9275-15c0a7482d6f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "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-f8f3bff0-f6ab-485d-a288-a7038e873eba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]} GET /drivers/fake-hardware-type-2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b508e0b8-5065-4aec-b567-f21ff8032d36 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group [0.106509s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?conductor_group=group1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-265e4463-3738-4020-8843-dcad3b86891a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"nodes": [{"uuid": "18c8fd83-f7b4-40c8-8912-63a69cb055a2", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/18c8fd83-f7b4-40c8-8912-63a69cb055a2", "rel": "self"}, {"href": "http://localhost/nodes/18c8fd83-f7b4-40c8-8912-63a69cb055a2", "rel": "bookmark"}]}]} GET /v1/nodes?conductor_group=group2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-322d9afa-974a-4b53-89c6-256dcaee2f66 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"nodes": [{"uuid": "8ec759ed-ad31-4d9a-89fb-7a615d04e3d1", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/8ec759ed-ad31-4d9a-89fb-7a615d04e3d1", "rel": "self"}, {"href": "http://localhost/nodes/8ec759ed-ad31-4d9a-89fb-7a615d04e3d1", "rel": "bookmark"}]}]} GET /v1/nodes/detail?conductor_group=group1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1a0a946f-2a8f-4a58-9d1f-6cede0ae4433 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"nodes": [{"uuid": "18c8fd83-f7b4-40c8-8912-63a69cb055a2", "created_at": "2025-05-07T22:57:56.644890+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/18c8fd83-f7b4-40c8-8912-63a69cb055a2", "rel": "self"}, {"href": "http://localhost/nodes/18c8fd83-f7b4-40c8-8912-63a69cb055a2", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/18c8fd83-f7b4-40c8-8912-63a69cb055a2/ports", "rel": "self"}, {"href": "http://localhost/nodes/18c8fd83-f7b4-40c8-8912-63a69cb055a2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/18c8fd83-f7b4-40c8-8912-63a69cb055a2/states", "rel": "self"}, {"href": "http://localhost/nodes/18c8fd83-f7b4-40c8-8912-63a69cb055a2/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/18c8fd83-f7b4-40c8-8912-63a69cb055a2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/18c8fd83-f7b4-40c8-8912-63a69cb055a2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/18c8fd83-f7b4-40c8-8912-63a69cb055a2/volume", "rel": "self"}, {"href": "http://localhost/nodes/18c8fd83-f7b4-40c8-8912-63a69cb055a2/volume", "rel": "bookmark"}]}]} GET /v1/nodes/detail?conductor_group=group2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1fcd4578-b7c3-4855-9 fa8-1c2af25eab99 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"nodes": [{"uuid": "8ec759ed-ad31-4d9a-89fb-7a615d04e3d1", "created_at": "2025-05-07T22:57:56.646496+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/8ec759ed-ad31-4d9a-89fb-7a615d04e3d1", "rel": "self"}, {"href": "http://localhost/nodes/8ec759ed-ad31-4d9a-89fb-7a615d04e3d1", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/8ec759ed-ad31-4d9a-89fb-7a615d04e3d1/ports", "rel": "self"}, {"href": "http://localhost/nodes/8ec759ed-ad31-4d9a-89fb-7a615d04e3d1/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8ec759ed-ad31-4d9a-89fb-7a615d04e3d1/states", "rel": "self"}, {"href": "http://localhost/nodes/8ec759ed-ad31-4d9a-89fb-7a615d04e3d1/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8ec759ed-ad31-4d9a-89fb-7a615d04e3d1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8ec759ed-ad31-4d9a-89fb-7a615d04e3d1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8ec759ed-ad31-4d9a-89fb-7a615d04e3d1/volume", "rel": "self"}, {"href": "http://localhost/nodes/8ec759ed-ad31-4d9a-89fb-7a615d04e3d1/volume", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_advanced_net [0.097545s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0752db3e-05c5-44d4-a12d-125dfc81c600 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.18 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:57:56.655305+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-f9d9480d-dc1f-4138-ac9c-081f339d6473 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.19 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:57:56.655305+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_info": "switch", "switch_id": "aa:bb:cc:dd:ee:ff", "port_id": "Gig0/1"}, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group_not_allowed [0.038931s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?conductor_group=group1 WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-905a4542-c778-46aa-bf96-01d6edd4c1e9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.46\", \"debuginfo\": null}"} GET /v1/nodes/detail?conductor_group=group1 WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-88bfe6c2-5ca0-42c4-8bdd-bae021b95979 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.46\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_child_node_list [0.067201s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/jsonschema/validators.py:1301: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_custom_fields [0.046193s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?fields=name,hosts WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6859ce53-78b3-42b5-83a9-0ed122798a6f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.77 {"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type", "rel": "bookmark"}]}, {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_custom_fields_with_detail_false [0.051057s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?fields=name,hosts&detail=false WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a634049e-c6cf-488c-911a-d9da32dc206c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.77 {"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "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_node.TestCheckCleanSteps.test__check_clean_steps_not_list [0.064720s] ... 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_port.TestListPorts.test_hide_fields_in_newer_versions_internal_info [0.105572s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-78dee871-7158-4433-9acb-ff5c4e09dcf5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:57:56.750438+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-9d375097-c817-4ff4-b074-af4f180552aa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.18 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:57:56.750438+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_no_valid_host [0.079988s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?conductor=like.shadows WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3bcbd15c-a534-4a7c-8a34-bda26c4a10da X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"nodes": []} GET /v1/nodes?conductor=like.shadows WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e26cb003-de7f-45d7-a9a3-68d2e883afcd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"nodes": []} GET /v1/nodes?conductor=fake.conductor WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-a84d008d-5bc6-47c9-bc4d-6ba14c36a214 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Some unexpected thing happened\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_custom_fields_with_detail_true [0.046223s] ... 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-cd517ced-0eff-4e7b-8820-7666713ace6b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.77 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_not_allowed [0.034932s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?conductor=rocky.rocks WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-33f95e04-d256-4da3-ad04-7025e1d30b04 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.49\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_args_value_invalid [0.050802s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/jsonschema/validators.py:1301: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_collection_invalid_custom_fields [0.041778s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?fields=name,invalid WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-291df142-0e9a-46c9-8128-b55efb45cc8d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.77 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"invalid\\\" are not valid\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_description [0.050211s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?description_contains=cat WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f3d58711-9ae3-4f51-95bb-d1cfdd9b8c42 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.51 {"nodes": [{"uuid": "b9c971ca-b1c8-4159-9e63-97766e430237", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/b9c971ca-b1c8-4159-9e63-97766e430237", "rel": "self"}, {"href": "http://localhost/nodes/b9c971ca-b1c8-4159-9e63-97766e430237", "rel": "bookmark"}]}]} GET /v1/nodes?description_contains=dog WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f157100d-f857-4cca-b031-a6f20a56dbbc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.51 {"nodes": [{"uuid": "13da77df-bc10-42f4-9450-7b0e2cf902c9", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/13da77df-bc10-42f4-9450-7b0e2cf902c9", "rel": "self"}, {"href": "http://localhost/nodes/13da77df-bc10-42f4-9450-7b0e2cf902c9", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_is_smartnic [0.094057s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7b5dbbd9-b08c-4769-a05b-f28b54395176 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.52 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:57:56.854197+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-a9e51a62-5aa5-4911-8023-d5bab88657ef X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.53 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:57:56.854197+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} {1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_interface_value_invalid [0.058725s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/jsonschema/validators.py:1301: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version [0.049311s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?detail=True WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-0a3a901a-43ac-4476-a423-b8821fead008 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.30\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version_false [0.031155s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?detail=False WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-1979d16c-38be-45f3-bb5f-a382bfc41a70 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.30\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_key_invalid [0.052216s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/jsonschema/validators.py:1301: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver [0.099781s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?driver=ipmi WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d3ad1f36-f9a8-4b6f-b92b-8a2aca253fd4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.16 {"nodes": [{"uuid": "f465e651-fe0b-4fb1-ad01-aad44a0d3518", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/f465e651-fe0b-4fb1-ad01-aad44a0d3518", "rel": "self"}, {"href": "http://localhost/nodes/f465e651-fe0b-4fb1-ad01-aad44a0d3518", "rel": "bookmark"}]}]} GET /v1/nodes?driver=fake-hardware WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dbb1033b-e09e-4789-9204-85da63c02bd6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.16 {"nodes": [{"uuid": "c45d5482-a044-4ffe-860c-c7696a5c8e0f", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/c45d5482-a044-4ffe-860c-c7696a5c8e0f", "rel": "self"}, {"href": "http://localhost/nodes/c45d5482-a044-4ffe-860c-c7696a5c8e0f", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_not_found [0.032784s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/nope WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-081061b3-96cc-4db8-a805-6f253d67abd3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): nope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_ovn_vtep [0.115781s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cb81d257-d6e7-40aa-a468-76894f79aa6a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.18 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:57:56.957514+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-4dc31d2f-651f-4fa1-ad2d-4c8ff8d69c5f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.89 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:57:56.957514+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-f1ae18ce-8a53-4e0d-b984-9fae5281d3d7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:57:56.957514+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} {1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_min_length_step_value [0.055974s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/jsonschema/validators.py:1301: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_base_interfaces [0.058504s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-175db615-bbdf-4e14-9af9-da31d34bffbd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "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_management_interface": null, "enabled_management_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_power_interface": null, "enabled_power_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["ansible", "direct"], "default_network_interface": null, "enabled_network_interfaces": [], "default_raid_interface": null, "enabled_raid_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-fe6317b4-a8d2-4e66-9020-1f06659d8c79 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "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-64e89edd-60da-4850-85b2-f38c026969f2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "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.TestListNodes.test_get_nodes_by_driver_invalid_api_version [0.070497s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?driver=fake WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-9bc04636-b993-4d4d-b1e6-ca4e0018d537 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.16\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_interface [0.061286s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/jsonschema/validators.py:1301: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_latest_interfaces [0.053630s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5c302ebe-8efe-442e-9d86-5693627ec261 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "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_management_interface": null, "enabled_management_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_power_interface": null, "enabled_power_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["ansible", "direct"], "default_network_interface": null, "enabled_network_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_rescue_interface": null, "enabled_rescue_interfaces": [], "default_bios_interface": null, "enabled_bios_interfaces": [], "default_firmware_interface": null, "enabled_firmware_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_storage_interface": null, "enabled_storage_interfaces": []} GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-641e9ab1-6b0e-4b46-a0aa-e00092e55675 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "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-0dfeb03c-8493-41a4-a511-889463422ae8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "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_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network [0.106307s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dd8d9689-a682-411d-9611-cf9775efd16b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:57:57.083294+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-ae41a93a-d3f0-40d5-a34d-1ab3fa77a110 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:57:57.083294+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_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_key [0.050147s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/jsonschema/validators.py:1301: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault [0.085675s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fault=power failure WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d98bccf8-5371-4a13-b066-da8ebf450ad5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.42 {"nodes": [{"uuid": "f2722e65-e02b-45f6-bc4e-463dad189719", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/f2722e65-e02b-45f6-bc4e-463dad189719", "rel": "self"}, {"href": "http://localhost/nodes/f2722e65-e02b-45f6-bc4e-463dad189719", "rel": "bookmark"}]}]} GET /v1/nodes?fault=clean failure WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1aa4c1c7-6d7f-42e7-8357-9618974c2288 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.42 {"nodes": [{"uuid": "7a3a52bc-83e9-46b6-b81d-73e779430ab4", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/7a3a52bc-83e9-46b6-b81d-73e779430ab4", "rel": "self"}, {"href": "http://localhost/nodes/7a3a52bc-83e9-46b6-b81d-73e779430ab4", "rel": "bookmark"}]}]} GET /v1/nodes/detail?fault=power failure WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-43b88ae6-d436-4787-bb59-e735c720a05f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.42 {"nodes": [{"uuid": "f2722e65-e02b-45f6-bc4e-463dad189719", "created_at": "2025-05-07T22:57:57.121797+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/f2722e65-e02b-45f6-bc4e-463dad189719", "rel": "self"}, {"href": "http://localhost/nodes/f2722e65-e02b-45f6-bc4e-463dad189719", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f2722e65-e02b-45f6-bc4e-463dad189719/ports", "rel": "self"}, {"href": "http://localhost/nodes/f2722e65-e02b-45f6-bc4e-463dad189719/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f2722e65-e02b-45f6-bc4e-463dad189719/states", "rel": "self"}, {"href": "http://localhost/nodes/f2722e65-e02b-45f6-bc4e-463dad189719/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f2722e65-e02b-45f6-bc4e-463dad189719/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f2722e65-e02b-45f6-bc4e-463dad189719/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f2722e65-e02b-45f6-bc4e-463dad189719/volume", "rel": "self"}, {"href": "http://localhost/nodes/f2722e65-e02b-45f6-bc4e-463dad189719/volume", "rel": "bookmark"}]}]} GET /v1/nodes/detail?fault=clean failure WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-82b14264-bad7-4054-8cd3-c3c7be97351c X-Openstack-Ironic-Api-Maximum-V ersion: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.42 {"nodes": [{"uuid": "7a3a52bc-83e9-46b6-b81d-73e779430ab4", "created_at": "2025-05-07T22:57:57.123519+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/7a3a52bc-83e9-46b6-b81d-73e779430ab4", "rel": "self"}, {"href": "http://localhost/nodes/7a3a52bc-83e9-46b6-b81d-73e779430ab4", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/7a3a52bc-83e9-46b6-b81d-73e779430ab4/ports", "rel": "self"}, {"href": "http://localhost/nodes/7a3a52bc-83e9-46b6-b81d-73e779430ab4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7a3a52bc-83e9-46b6-b81d-73e779430ab4/states", "rel": "self"}, {"href": "http://localhost/nodes/7a3a52bc-83e9-46b6-b81d-73e779430ab4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7a3a52bc-83e9-46b6-b81d-73e779430ab4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7a3a52bc-83e9-46b6-b81d-73e779430ab4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7a3a52bc-83e9-46b6-b81d-73e779430ab4/volume", "rel": "self"}, {"href": "http://localhost/nodes/7a3a52bc-83e9-46b6-b81d-73e779430ab4/volume", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_no_active_conductor [0.045273s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ffb8d464-3760-4324-948e-f46f0ee54d62 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"drivers": []} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_value [0.033036s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?type=working WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9b43fb61-6f11-4fec-9ec8-13f2631cf186 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"type\\\" filter must be one of \\\"classic\\\" or \\\"dynamic\\\", if specified.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_not_allowed [0.039119s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fault=power failure WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-19bb86a3-7bd9-49f6-b1b9-179721ee1cb5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.41 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.42\", \"debuginfo\": null}"} GET /v1/nodes/detail?fault=power failure WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-9b917770-5694-48ab-a04d-c4892cc72fd6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.41 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.42\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_value [0.059794s] ... 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_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network_upgrade [0.089365s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ad506363-2e70-4fa0-8677-4ef58b3cd14d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:57:57.190934+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_driver.TestListDrivers.test_drivers_type_filter_bad_version [0.030025s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?type=classic WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-457b26b1-1578-46bc-8572-69c5a486ae3c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.30\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_with_invalid_fault [0.038353s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?fault=somefake WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-36e9144b-edb5-4f89-a7d2-054a32bed6bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.42 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unrecognized fault \\\"somefake\\\" is specified, allowed faults are ('power failure', 'clean failure', 'rescue abort failure', 'service failure')\", \"debuginfo\": null}"} GET /v1/nodes/detail?fault=somefake WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5ad759fa-9642-4185-98c1-5d9c05d1d7b8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.42 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unrecognized fault \\\"somefake\\\" is specified, allowed faults are ('power failure', 'clean failure', 'rescue abort failure', 'service failure')\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_not_dict [0.052570s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/jsonschema/validators.py:1301: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_classic [0.038400s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?type=classic WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2bd25710-3a7d-4875-88d9-581d9fb26bf4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"drivers": []} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_driver [0.046720s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?driver=test WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-379d073f-0e49-4327-96da-1974831bb1dc X-Openstack-Ironic-Api-Maximum-Version: 1.98 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.TestListNodes.test_get_nodes_by_invalid_provision_state [0.034794s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?provision_state=test WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9d897e54-12d1-4453-9ffd-d5858215f082 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.9 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Provision state \\\"test\\\" is not valid\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_dynamic [0.070695s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?type=dynamic WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-410fe3c5-e783-432f-8807-6abbb47eb128 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "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_port.TestListPorts.test_hide_fields_in_newer_versions_portgroup_uuid [0.124727s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0a3e4605-6c41-46b1-9e47-28e0b3305ffd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.23 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:57:57.289465+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-ea87823c-8f08-4c4a-b0d3-e7b5ab706572 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:57:57.289465+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_node.TestCheckCleanSteps.test__check_clean_steps_valid [0.110550s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/jsonschema/validators.py:1301: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class [0.075473s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?resource_class=test WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1888e786-c6d6-461c-a723-be1c910f2037 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"nodes": []} {1} ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test_check__check_steps_wrappers [0.054497s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class_detail [0.033684s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?resource_class=test WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-16574616-05f1-45b8-9026-fe1629c3d690 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"nodes": []} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic [0.108115s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9f210b76-c70d-447b-9d75-3869e6d1ccc3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "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-25911aac-19f6-48e4-87ea-13e4a1f678ec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "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-fc5be20a-fd6d-477c-8653-32a7f05f1781 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "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-c7816320-46ff-440b-aaff-23adfcf2bff8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]} GET /drivers/fake-hardware-type-2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-513fe9ce-1248-4388-b083-86c176d43702 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links [0.126784s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/d31dec06-52a7-4501-8f49-a70c13edd8cd WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8c430b65-6ef3-4e51-8773-e725e48bd308 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "d31dec06-52a7-4501-8f49-a70c13edd8cd", "created_at": "2025-05-07T22:57:57.409927+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/d31dec06-52a7-4501-8f49-a70c13edd8cd", "rel": "self"}, {"href": "http://localhost/ports/d31dec06-52a7-4501-8f49-a70c13edd8cd", "rel": "bookmark"}]} GET /v1/ports/d31dec06-52a7-4501-8f49-a70c13edd8cd WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6733541a-e63d-4e5b-9c03-bfdd500f3227 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "d31dec06-52a7-4501-8f49-a70c13edd8cd", "created_at": "2025-05-07T22:57:57.409927+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/d31dec06-52a7-4501-8f49-a70c13edd8cd", "rel": "self"}, {"href": "http://localhost/ports/d31dec06-52a7-4501-8f49-a70c13edd8cd", "rel": "bookmark"}]} GET /ports/d31dec06-52a7-4501-8f49-a70c13edd8cd WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-747f4c13-4463-41bd-8ad4-b57b54f70e9a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "d31dec06-52a7-4501-8f49-a70c13edd8cd", "created_at": "2025-05-07T22:57:57.409927+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/d31dec06-52a7-4501-8f49-a70c13edd8cd", "rel": "self"}, {"href": "http://localhost/ports/d31dec06-52a7-4501-8f49-a70c13edd8cd", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_lessee [0.073655s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?lessee=project1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a899ed22-4a95-400e-ad4c-543f6a182c89 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"nodes": [{"uuid": "58302117-03aa-4dd4-967e-71e351f69c01", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/58302117-03aa-4dd4-967e-71e351f69c01", "rel": "self"}, {"href": "http://localhost/nodes/58302117-03aa-4dd4-967e-71e351f69c01", "rel": "bookmark"}]}]} GET /v1/nodes?lessee=project2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ee93156d-c79e-403f-99dc-4de363bb503a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"nodes": [{"uuid": "2b1d205f-846f-487c-a0a1-e20edd3d1718", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/2b1d205f-846f-487c-a0a1-e20edd3d1718", "rel": "self"}, {"href": "http://localhost/nodes/2b1d205f-846f-487c-a0a1-e20edd3d1718", "rel": "bookmark"}]}]} GET /v1/nodes/detail?lessee=project1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-428cfe97-ad0d-4601-ba89-716757d0d578 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"nodes": [{"uuid": "58302117-03aa-4dd4-967e-71e351f69c01", "created_at": "2025-05-07T22:57:57.460650+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/58302117-03aa-4dd4-967e-71e351f69c01", "rel": "self"}, {"href": "http://localhost/nodes/58302117-03aa-4dd4-967e-71e351f69c01", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/58302117-03aa-4dd4-967e-71e351f69c01/ports", "rel": "self"}, {"href": "http://localhost/nodes/58302117-03aa-4dd4-967e-71e351f69c01/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/58302117-03aa-4dd4-967e-71e351f69c01/states", "rel": "self"}, {"href": "http://localhost/nodes/58302117-03aa-4dd4-967e-71e351f69c01/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/58302117-03aa-4dd4-967e-71e351f69c01/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/58302117-03aa-4dd4-967e-71e351f69c01/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/58302117-03aa-4dd4-967e-71e351f69c01/volume", "rel": "self"}, {"href": "http://localhost/nodes/58302117-03aa-4dd4- 967e-71e351f69c01/volume", "rel": "bookmark"}]}]} GET /v1/nodes/detail?lessee=project2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-978c9611-db4e-4084-ad2a-260b047a7c95 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"nodes": [{"uuid": "2b1d205f-846f-487c-a0a1-e20edd3d1718", "created_at": "2025-05-07T22:57:57.462146+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/2b1d205f-846f-487c-a0a1-e20edd3d1718", "rel": "self"}, {"href": "http://localhost/nodes/2b1d205f-846f-487c-a0a1-e20edd3d1718", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2b1d205f-846f-487c-a0a1-e20edd3d1718/ports", "rel": "self"}, {"href": "http://localhost/nodes/2b1d205f-846f-487c-a0a1-e20edd3d1718/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2b1d205f-846f-487c-a0a1-e20edd3d1718/states", "rel": "self"}, {"href": "http://localhost/nodes/2b1d205f-846f-487c-a0a1-e20edd3d1718/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2b1d205f-846f-487c-a0a1-e20edd3d1718/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2b1d205f-846f-487c-a0a1-e20edd3d1718/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2b1d205f-846f-487c-a0a1-e20edd3d1718/volume", "rel": "self"}, {"href": "http://localhost/nodes/2b1d205f-846f-487c-a0a1-e20edd3d1718/volume", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history [0.109250s] ... 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-f10bc9b7-423a-4c72-94c8-a553d60a34a6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"history": []} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_lessee_not_allowed [0.043260s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?lessee=project1 WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-64939e9f-3731-4100-b110-56082a9dd046 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.64 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.65\", \"debuginfo\": null}"} GET /v1/nodes/detail?lessee=project1 WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b69adc4b-79a5-4f3c-9acf-07be7e73f674 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.64 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.65\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed [0.111288s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-24349bc3-eafc-47a4-8fe0-1de54a497365 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "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_management_interface": null, "enabled_management_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_power_interface": null, "enabled_power_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["ansible", "direct"], "default_network_interface": null, "enabled_network_interfaces": [], "default_raid_interface": null, "enabled_raid_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_management_interface": null, "enabled_management_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_power_interface": null, "enabled_power_interfaces": [], "default_deploy_interface": null, "enabled_deploy_interfaces": [], "default_network_interface": null, "enabled_network_interfaces": [], "default_raid_interface": null, "enabled_raid_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-aed21f64-47f5-460f-965b-659c13b1e208 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "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-dbc06cb9-d138-4a83-a7cd-048079a83c2f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "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-3bcf5cfe-e5c2-413c-8ed7-0e0ae4848399 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]} GET /drivers/fake-hardware-type-2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-47149549-3ebe-4d39-870f-56e23676c3 0f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links_public_url [0.116645s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/41075d23-a22a-4ee9-96ab-4f0a370d17b4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6d8382ec-e28c-43ba-acef-ff229ab0b21f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "41075d23-a22a-4ee9-96ab-4f0a370d17b4", "created_at": "2025-05-07T22:57:57.542731+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/41075d23-a22a-4ee9-96ab-4f0a370d17b4", "rel": "self"}, {"href": "http://foo/ports/41075d23-a22a-4ee9-96ab-4f0a370d17b4", "rel": "bookmark"}]} GET /v1/ports/41075d23-a22a-4ee9-96ab-4f0a370d17b4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2995801c-2340-4d8c-8546-29c13f0a3465 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "41075d23-a22a-4ee9-96ab-4f0a370d17b4", "created_at": "2025-05-07T22:57:57.542731+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/41075d23-a22a-4ee9-96ab-4f0a370d17b4", "rel": "self"}, {"href": "http://foo/ports/41075d23-a22a-4ee9-96ab-4f0a370d17b4", "rel": "bookmark"}]} GET /ports/41075d23-a22a-4ee9-96ab-4f0a370d17b4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e4b76aea-8a9f-4b56-92c9-aa21d8a3b584 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "41075d23-a22a-4ee9-96ab-4f0a370d17b4", "created_at": "2025-05-07T22:57:57.542731+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/41075d23-a22a-4ee9-96ab-4f0a370d17b4", "rel": "self"}, {"href": "http://foo/ports/41075d23-a22a-4ee9-96ab-4f0a370d17b4", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history_returns_detail [0.078309s] ... 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-63c727eb-d990-4c5a-822b-7aa135be22bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"history": [{"uuid": "88513159-0643-41a1-9fed-57e809d7736c", "created_at": "2025-05-07T22:57:57.598415+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/88513159-0643-41a1-9fed-57e809d7736c", "rel": "self"}]}, {"uuid": "b63668af-c0bb-4177-818d-3a4c6ab54c0f", "created_at": "2025-05-07T22:57:57.599438+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/b63668af-c0bb-4177-818d-3a4c6ab54c0f", "rel": "self"}]}, {"uuid": "cdae11d0-5ed8-4909-8472-45da724c0057", "created_at": "2025-05-07T22:57:57.600116+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/cdae11d0-5ed8-4909-8472-45da724c0057", "rel": "self"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner [0.076448s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?owner=fred WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-759045e3-c907-44d4-bada-ddd3a94647da X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"nodes": [{"uuid": "cd528d11-aeba-473f-9a59-540118c7900e", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/cd528d11-aeba-473f-9a59-540118c7900e", "rel": "self"}, {"href": "http://localhost/nodes/cd528d11-aeba-473f-9a59-540118c7900e", "rel": "bookmark"}]}]} GET /v1/nodes?owner=bob WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0894d149-eb67-4d6b-ac44-4eb692f2877c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"nodes": [{"uuid": "f30b019c-3c3a-44b0-b795-2ecb88acf413", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/f30b019c-3c3a-44b0-b795-2ecb88acf413", "rel": "self"}, {"href": "http://localhost/nodes/f30b019c-3c3a-44b0-b795-2ecb88acf413", "rel": "bookmark"}]}]} GET /v1/nodes/detail?owner=fred WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fa64e517-6c58-4f3c-a8ae-fd80f2675f43 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"nodes": [{"uuid": "cd528d11-aeba-473f-9a59-540118c7900e", "created_at": "2025-05-07T22:57:57.582612+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/cd528d11-aeba-473f-9a59-540118c7900e", "rel": "self"}, {"href": "http://localhost/nodes/cd528d11-aeba-473f-9a59-540118c7900e", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/cd528d11-aeba-473f-9a59-540118c7900e/ports", "rel": "self"}, {"href": "http://localhost/nodes/cd528d11-aeba-473f-9a59-540118c7900e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/cd528d11-aeba-473f-9a59-540118c7900e/states", "rel": "self"}, {"href": "http://localhost/nodes/cd528d11-aeba-473f-9a59-540118c7900e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/cd528d11-aeba-473f-9a59-540118c7900e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/cd528d11-aeba-473f-9a59-540118c7900e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/cd528d11-aeba-473f-9a59-540118c7900e/volume", "rel": "self"}, {"href": "http://localhost/nodes/cd528d11-aeba-473f-9a59-540118c7900e/volume", "rel": "bookmark"}]}]} GET /v1/nodes/detail?owner=bob WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e0425cc6-39bb-4941-8f41-f151394261df X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"nodes": [{"uuid": "f30b019c-3c3a-44b0-b795-2ecb88acf413", "created_at": "2025-05-07T22:57:57.585480+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/f30b019c-3c3a-44b0-b795-2ecb88acf413", "rel": "self"}, {"href": "http://localhost/nodes/f30b019c-3c3a-44b0-b795-2ecb88acf413", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f30b019c-3c3a-44b0-b795-2ecb88acf413/ports", "rel": "self"}, {"href": "http://localhost/nodes/f30b019c-3c3a-44b0-b795-2ecb88acf413/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f30b019c-3c3a-44b0-b795-2ecb88acf413/states", "rel": "self"}, {"href": "http://localhost/nodes/f30b019c-3c3a-44b0-b795-2ecb88acf413/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f30b019c-3c3a-44b0-b795-2ecb88acf413/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f30b019c-3c3a-44b0-b795-2ecb88acf413/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f30b019c-3c3a-44b0-b795-2ecb88acf413/volume", "rel": "self"}, {"href": "http://localhost/nodes/f30b019c-3c3a-44b0-b795-2ecb88acf413/volume", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history_returns_entries [0.045532s] ... 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-136dd2c0-cbcf-418f-bb05-fe0222d7789c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"history": [{"uuid": "5c50e01f-8cba-4347-bade-6422cb881dad", "created_at": "2025-05-07T22:57:57.643920+00:00", "severity": null, "event": "meow", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/5c50e01f-8cba-4347-bade-6422cb881dad", "rel": "self"}]}, {"uuid": "76a8be37-cd52-40b1-938a-02561c58c6fc", "created_at": "2025-05-07T22:57:57.645026+00:00", "severity": null, "event": "purr", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/76a8be37-cd52-40b1-938a-02561c58c6fc", "rel": "self"}]}, {"uuid": "a563535c-8de5-49e1-84cb-aa9a05a95add", "created_at": "2025-05-07T22:57:57.645782+00:00", "severity": null, "event": "grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/a563535c-8de5-49e1-84cb-aa9a05a95add", "rel": "self"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner_not_allowed [0.031846s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?owner=fred WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-17d8ea7c-8537-45a1-8029-fe7db816f9c1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.50\", \"debuginfo\": null}"} GET /v1/nodes/detail?owner=fred WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d8978563-7399-4aa9-8a66-331d477fa662 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.50\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_non_admin_forbidden [0.058184s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6b1cd546-c994-4abd-bdb4-85fb207b36a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_history_with_sort [0.046759s] ... 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-e4baebff-59a2-4733-a148-ce15e72535ec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"history": [{"uuid": "e562ee17-9473-4f41-b9cd-1d2580d7bc7e", "created_at": "2025-05-07T22:57:57.693852+00:00", "severity": null, "event": "grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/e562ee17-9473-4f41-b9cd-1d2580d7bc7e", "rel": "self"}]}, {"uuid": "935f3226-2f0e-41ea-9571-6087000edeb6", "created_at": "2025-05-07T22:57:57.693120+00:00", "severity": null, "event": "purr", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/935f3226-2f0e-41ea-9571-6087000edeb6", "rel": "self"}]}, {"uuid": "331c2c9c-44d1-49c6-918e-dbd9447ce7e8", "created_at": "2025-05-07T22:57:57.692354+00:00", "severity": null, "event": "meow", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/331c2c9c-44d1-49c6-918e-dbd9447ce7e8", "rel": "self"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed_storage_interface [0.144379s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-67cb6409-6221-4128-8270-a2e5078c2ced X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"drivers": [{"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "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_management_interface": null, "enabled_management_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_power_interface": null, "enabled_power_interfaces": [], "default_deploy_interface": "direct", "enabled_deploy_interfaces": ["ansible", "direct"], "default_network_interface": null, "enabled_network_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_rescue_interface": null, "enabled_rescue_interfaces": [], "default_bios_interface": null, "enabled_bios_interfaces": [], "default_firmware_interface": null, "enabled_firmware_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_storage_interface": null, "enabled_storage_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_management_interface": null, "enabled_management_interfaces": [], "default_inspect_interface": null, "enabled_inspect_interfaces": [], "default_console_interface": null, "enabled_console_interfaces": [], "default_vendor_interface": null, "enabled_vendor_interfaces": [], "default_power_interface": null, "enabled_power_interfaces": [], "default_deploy_interface": null, "enabled_deploy_interfaces": [], "default_network_interface": null, "enabled_network_interfaces": [], "default_raid_interface": null, "enabled_raid_interfaces": [], "default_rescue_interface": null, "enabled_rescue_interfaces": [], "default_bios_interface": null, "enabled_bios_interfaces": [], "default_firmware_interface": null, "enabled_firmware_interfaces": [], "default_boot_interface": null, "enabled_boot_interfaces": [], "default_storage_interface": null, "enabled_storage_interfaces": []}]} GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-51af7ebc-28b5-4d54-ad89-1c81cc298c16 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "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-4b8fef34-508d-4811-b857-33fd02e4d5d5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "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- 43f2bdaf-96f2-44cd-9f4d-06b12c61cdb1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]} GET /drivers/fake-hardware-type-2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a3948bbb-d580-4ccf-8e13-efb75718b54d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type-2", "hosts": ["fake-host1"], "links": [{"href": "http://localhost/v1/drivers/fake-hardware-type-2", "rel": "self"}, {"href": "http://localhost/drivers/fake-hardware-type-2", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state [0.056804s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?provision_state=available WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7de4a346-353f-4a7e-ba35-6171c9eaffa2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.9 {"nodes": [{"uuid": "c94377ce-9ea0-4d9a-9ffa-dd1a8fea9a57", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/c94377ce-9ea0-4d9a-9ffa-dd1a8fea9a57", "rel": "self"}, {"href": "http://localhost/nodes/c94377ce-9ea0-4d9a-9ffa-dd1a8fea9a57", "rel": "bookmark"}]}]} GET /v1/nodes?provision_state=deploying WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ae2224f3-eb9d-403f-86d4-7869f330e99c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.9 {"nodes": [{"uuid": "8901983d-8937-4938-b221-a1f0fa931d5d", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "deploying", "name": null, "links": [{"href": "http://localhost/v1/nodes/8901983d-8937-4938-b221-a1f0fa931d5d", "rel": "self"}, {"href": "http://localhost/nodes/8901983d-8937-4938-b221-a1f0fa931d5d", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_non_admin_forbidden_no_project [0.060275s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e1a3f2e3-5b16-4887-9b90-7c736d809163 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_old_version [0.038490s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state_not_allowed [0.033445s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?provision_state=test WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-270ac826-d627-411d-a9f0-cf726986c027 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.8 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_custom_fields_invalid_api_version [0.087436s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers?fields=name,hosts WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-1f5c4310-dd9b-4a86-a0f7-f0f3c885fc2d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET /v1/drivers/fake-hardware-type?fields=name,hosts WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-66e20ae0-ca21-4e36-93f4-323264de36ec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class [0.050681s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?resource_class=foo WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a480679c-dc8d-4dff-b69a-ccaf25c1d156 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"nodes": [{"uuid": "e43bbb4e-af49-41f9-8269-4ef6e6d7cd73", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/e43bbb4e-af49-41f9-8269-4ef6e6d7cd73", "rel": "self"}, {"href": "http://localhost/nodes/e43bbb4e-af49-41f9-8269-4ef6e6d7cd73", "rel": "bookmark"}]}]} GET /v1/nodes?resource_class=bar WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-922aa338-1fec-4563-a316-b0dc80db7fde X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"nodes": [{"uuid": "da4bd500-82b9-4de8-a5b8-41229f503238", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/da4bd500-82b9-4de8-a5b8-41229f503238", "rel": "self"}, {"href": "http://localhost/nodes/da4bd500-82b9-4de8-a5b8-41229f503238", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many [0.094426s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8b2e1378-6ced-47d6-9e34-132f975646b6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "41a9defc-3dfe-4832-b49e-85f913b2a5f0", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/41a9defc-3dfe-4832-b49e-85f913b2a5f0", "rel": "self"}, {"href": "http://localhost/ports/41a9defc-3dfe-4832-b49e-85f913b2a5f0", "rel": "bookmark"}]}, {"uuid": "58b6dd49-406b-4f6b-83b7-a9ae1df54131", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/58b6dd49-406b-4f6b-83b7-a9ae1df54131", "rel": "self"}, {"href": "http://localhost/ports/58b6dd49-406b-4f6b-83b7-a9ae1df54131", "rel": "bookmark"}]}, {"uuid": "a4c02d3f-5c6d-4572-a076-46eb208fa7e7", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/a4c02d3f-5c6d-4572-a076-46eb208fa7e7", "rel": "self"}, {"href": "http://localhost/ports/a4c02d3f-5c6d-4572-a076-46eb208fa7e7", "rel": "bookmark"}]}, {"uuid": "8395a0fb-da6a-47fc-ba11-a69b4066dd1e", "address": "52:54:00:cf:2d:33", "links": [{"href": "http://localhost/v1/ports/8395a0fb-da6a-47fc-ba11-a69b4066dd1e", "rel": "self"}, {"href": "http://localhost/ports/8395a0fb-da6a-47fc-ba11-a69b4066dd1e", "rel": "bookmark"}]}, {"uuid": "f055fbeb-d196-4892-bd72-e3a3fb4fedd4", "address": "52:54:00:cf:2d:34", "links": [{"href": "http://localhost/v1/ports/f055fbeb-d196-4892-bd72-e3a3fb4fedd4", "rel": "self"}, {"href": "http://localhost/ports/f055fbeb-d196-4892-bd72-e3a3fb4fedd4", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_detail [0.064084s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?resource_class=foo WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-642600cd-ac98-4d09-924a-8193c4489a90 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"nodes": [{"uuid": "08d2ad64-98b6-47ef-99cd-5dc9a8b622ff", "created_at": "2025-05-07T22:57:57.834422+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/08d2ad64-98b6-47ef-99cd-5dc9a8b622ff", "rel": "self"}, {"href": "http://localhost/nodes/08d2ad64-98b6-47ef-99cd-5dc9a8b622ff", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/08d2ad64-98b6-47ef-99cd-5dc9a8b622ff/ports", "rel": "self"}, {"href": "http://localhost/nodes/08d2ad64-98b6-47ef-99cd-5dc9a8b622ff/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/08d2ad64-98b6-47ef-99cd-5dc9a8b622ff/states", "rel": "self"}, {"href": "http://localhost/nodes/08d2ad64-98b6-47ef-99cd-5dc9a8b622ff/states", "rel": "bookmark"}]}]} GET /v1/nodes/detail?resource_class=bar WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-98d85794-a59c-4b4a-b5a2-5f5f980a53de X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"nodes": [{"uuid": "49ebb71e-7220-4a2d-90ce-1e58f417e0f6", "created_at": "2025-05-07T22:57:57.841416+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/49ebb71e-7220-4a2d-90ce-1e58f417e0f6", "rel": "self"}, {"href": "http://localhost/nodes/49ebb71e-7220-4a2d-90ce-1e58f417e0f6", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/49ebb71e-7220-4a2d-90ce-1e58f417e0f6/ports", "rel": "self"}, {"href": "http://localhost/nodes/49ebb71e-7220-4a2d-90ce-1e58f417e0f6/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/49ebb71e-7220-4a2d-90ce-1e58f417e0f6/states", "rel": "self"}, {"href": "http://localhost/nodes/49ebb71e-7220-4a2d-90ce-1e58f417e0f6/states", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_one_custom_fields [0.084366s] ... 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-8840776d-21d5-4c51-bb84-ad04dff8c096 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.77 {"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "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.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version [0.029367s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?resource_class=fake WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-6887d72e-ed1c-4ba3-a9fa-404c22eacc5f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.21\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many_non_admin [0.075950s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b028932f-d909-48b7-8210-59cfd5cc5649 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "ca9ba46e-0951-4012-9e1e-bd5646cdbf02", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/ca9ba46e-0951-4012-9e1e-bd5646cdbf02", "rel": "self"}, {"href": "http://localhost/ports/ca9ba46e-0951-4012-9e1e-bd5646cdbf02", "rel": "bookmark"}]}, {"uuid": "62bd782a-484c-4f15-80c6-fa609c75155f", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/62bd782a-484c-4f15-80c6-fa609c75155f", "rel": "self"}, {"href": "http://localhost/ports/62bd782a-484c-4f15-80c6-fa609c75155f", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version_detail [0.031302s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?resource_class=fake WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-4be76d27-5208-46e4-bcc6-aef62253fb3a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.21\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_one [0.046013s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-342169b7-7ad8-467b-8f77-b035301cb008 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed [0.036909s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?traits=CUSTOM_TRAIT_1 WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fcb8de7f-636c-4c17-bc42-658ec3254657 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: traits\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_get_one_invalid_custom_fields [0.084472s] ... 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-5b0209a8-89f0-4a70-9563-0f59efaa7d37 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.77 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"invalid\\\" are not valid\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed_detail [0.038120s] ... 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-88045b62-e60b-4888-a32b-c7a9bdbc41de X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: traits\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address [0.070271s] ... 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-ca0e4444-b30a-4678-9cfc-3096a9443f9f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "909e0b38-7f09-4681-a4c3-b37f7aecb73c", "address": "aa:bb:cc:dd:ee:f1", "links": [{"href": "http://localhost/v1/ports/909e0b38-7f09-4681-a4c3-b37f7aecb73c", "rel": "self"}, {"href": "http://localhost/ports/909e0b38-7f09-4681-a4c3-b37f7aecb73c", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_all_pagination [0.280140s] ... 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-e8eb9d89-97ac-4a0f-949a-c97a8e0b6d35 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"history": [{"uuid": "d4bd1a9e-26a1-4944-b368-b38fb306b2be", "created_at": "2025-05-07T22:57:57.987924+00:00", "severity": null, "event": "meow", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/d4bd1a9e-26a1-4944-b368-b38fb306b2be", "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=d4bd1a9e-26a1-4944-b368-b38fb306b2be"} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?limit=1&marker=d4bd1a9e-26a1-4944-b368-b38fb306b2be WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-487ec48b-e775-45a2-900d-db4437a7f156 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"history": [{"uuid": "3f190c97-f32a-4ecb-8634-fc97fa6323af", "created_at": "2025-05-07T22:57:57.988935+00:00", "severity": null, "event": "purr", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/3f190c97-f32a-4ecb-8634-fc97fa6323af", "rel": "self"}]}], "next": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=NodeHistory(conductor='cat-tree1',created_at=2025-05-07T22:57:57Z,event='meow',event_type=None,id=1,node_id=1,severity=None,updated_at=None,user='peaches',uuid=d4bd1a9e-26a1-4944-b368-b38fb306b2be)&sort_key=created_at&sort_dir=asc&fields=uuid,created_at,severity,event&limit=1&marker=3f190c97-f32a-4ecb-8634-fc97fa6323af"} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?limit=1&marker=3f190c97-f32a-4ecb-8634-fc97fa6323af WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-96081228-7492-4f88-a5d4-38db15f84098 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"history": [{"uuid": "58e9ace9-b9af-4a98-81a7-438a25ddac7e", "created_at": "2025-05-07T22:57:57.989694+00:00", "severity": null, "event": "grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/58e9ace9-b9af-4a98-81a7-438a25ddac7e", "rel": "self"}]}], "next": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=NodeHistory(conductor='cat-tree2',created_at=2025-05-07T22:57:57Z,event='purr',event_type=None,id=2,node_id=1,severity=None,updated_at=None,user='sage',uuid=3f190c97-f32a-4ecb-8634-fc97fa6323af)&sort_key=created_at&sort_dir=asc&fields=uuid,created_at,severity,event&limit=1&marker=58e9ace9-b9af-4a98-81a7-438a25ddac7e"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one [0.041248s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a3c2c29b-9a42-4f24-b0f3-6689e3e927ee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:58.031021+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_invalid_address_format [0.043220s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?address=invalid-mac-format WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cd4a7291-899e-4d88-be30-54430d78034e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-mac-format\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links [0.094274s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b8684f2f-ada1-40e9-a7b5-791feb7112b2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "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-60c3613c-3117-4de3-92bd-b5dff519aebc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "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-7d196df7-3698-43cf-8c89-7e0f6b77a1cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "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_node.TestNodeHistory.test_get_history_item [0.045260s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/2a467ec3-c74a-4a26-aab1-528dc60eca7e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-600228b8-2158-4540-93e2-6a63473256a5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"uuid": "2a467ec3-c74a-4a26-aab1-528dc60eca7e", "created_at": "2025-05-07T22:57:58.060913+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/2a467ec3-c74a-4a26-aab1-528dc60eca7e", "rel": "self"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_configdrive_dict [0.043933s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a1eca5cb-da32-47f2-a1e9-7cf97b0ca078 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:58.073552+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_admin [0.076900s] ... 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-be516ce0-2039-4881-ac25-5dd4691affa0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "25a4040d-f940-4125-81ae-bc6544eb0a0d", "address": "aa:bb:cc:dd:ee:f1", "links": [{"href": "http://localhost/v1/ports/25a4040d-f940-4125-81ae-bc6544eb0a0d", "rel": "self"}, {"href": "http://localhost/ports/25a4040d-f940-4125-81ae-bc6544eb0a0d", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item_not_found [0.073152s] ... 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-aa7f8054-e1e7-4f1b-9d3c-942345911f8d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node history record 52949728-59fc-4651-84c8-b0a16b469372 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields [0.061510s] ... 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-bdf0b7c6-bd13-4fe2-9cf1-404b3e7412b0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeHistory.test_get_history_item_old_version [0.030398s] ... 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\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links_public_url [0.096697s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-hardware-type WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2b1ee7a3-19bc-428e-b9a2-f54fc9c36b14 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "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-93dd6e7b-fe24-4745-abe3-aea9be14a9cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "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-dd4639b6-b4d8-416e-ae11-bc820567d2cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "fake-hardware-type", "hosts": ["fake-host1", "fake-host2"], "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_port.TestListPorts.test_port_by_address_non_admin_no_match [0.047263s] ... 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-70e4a611-8726-44d2-b285-553468e6247e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": []} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_as_list [0.044371s] ... 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-d63b6fd3-e59e-4a9a-b943-3fa5f43c1ffc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_existent_address [0.041761s] ... 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-1f6018df-efae-48d8-91f7-d7c454249bcd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": []} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties [0.068052s] ... 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-669a85c2-ff9d-41a6-ac0a-937cacd41ab9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {"foo": "description of foo"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_show_password [0.072469s] ... 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-40e072ce-f40c-4e9a-8e61-7f9f11d44134 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"driver_info": {"fake_password": "******"}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_invalid_ident [0.045042s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/123 123/ports WITH {} GOT Response: 400 Bad Request Content-Type: application/json {"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected UUID or name for portgroup: 123 123\"}"} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_cached [0.045701s] ... 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-2941a141-4444-4a70-bc81-827068acf96e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {"foo": "description of foo"} GET /v1/drivers/fake-hardware-type/raid/logical_disk_properties WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1c9482f3-d0a2-4438-bee7-fabd802f4c7c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {"foo": "description of foo"} GET /v1/drivers/fake-hardware-type/raid/logical_disk_properties WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4269d4ea-678a-4d14-aab7-acbc487e1b0e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {"foo": "description of foo"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePatch.test_node_add_parent [0.133086s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/bbfc00d7-3b90-4594-b5d6-a346d7a7794f WITH [{'path': '/parent_node', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2d27dffc-efac-4d92-b9d6-804fc62d6b08 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:58.200154+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_node_not_found [0.040586s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_deleted_chassis [0.060395s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9cbaccca-6ce1-4bdb-9ca0-0328ad933167 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:58.317947+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_driver.TestListDrivers.test_raid_logical_disk_properties_iface_not_supported [0.039870s] ... 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-c304ffc4-9f38-4a50-9d46-bead17e818a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver fake-hardware does not support raid (disabled or not implemented).\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key [0.054328s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ba662cd2-23f8-4304-be48-0fdf4e0a77cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "a28347dd-46b2-499b-a9b9-edc872a536f5", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/a28347dd-46b2-499b-a9b9-edc872a536f5", "rel": "self"}, {"href": "http://localhost/ports/a28347dd-46b2-499b-a9b9-edc872a536f5", "rel": "bookmark"}]}, {"uuid": "dc7891a6-6dfd-4370-a404-54615659204c", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/ports/dc7891a6-6dfd-4370-a404-54615659204c", "rel": "self"}, {"href": "http://localhost/ports/dc7891a6-6dfd-4370-a404-54615659204c", "rel": "bookmark"}]}, {"uuid": "f23639b9-2f5e-487f-bce0-6367b5493778", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/f23639b9-2f5e-487f-bce0-6367b5493778", "rel": "self"}, {"href": "http://localhost/ports/f23639b9-2f5e-487f-bce0-6367b5493778", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePatch.test_node_add_parent_node_fail_wrong_version [0.088924s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1a2edded-60e5-472d-bfcf-3f7dcffd9d02 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-1333b31a-84af-4f57-a248-ed4bf20f3a75 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_double_json_in_name [0.094934s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/node.json.json WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ed12dbc4-447d-4c20-a786-e62178a93d1c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:58.375629+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": "node.json.json", "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_allowed [0.059711s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?sort_key=pxe_enabled WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2257dd86-ff42-4fcb-aca3-e37a1236d939 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "b00841dd-2b24-482c-9759-9a2d2fd21125", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/b00841dd-2b24-482c-9759-9a2d2fd21125", "rel": "self"}, {"href": "http://localhost/ports/b00841dd-2b24-482c-9759-9a2d2fd21125", "rel": "bookmark"}]}, {"uuid": "1f31fe04-8b1a-44cf-b4f8-88dcaeead704", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1f31fe04-8b1a-44cf-b4f8-88dcaeead704", "rel": "self"}, {"href": "http://localhost/ports/1f31fe04-8b1a-44cf-b4f8-88dcaeead704", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json [0.044940s] ... 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-53a52ca4-3a37-47b1-a48b-83da2e67fa21 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:58.460804+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_invalid [0.051200s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c634901f-e2b6-49d3-b08c-3b45c8f91026 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/ports?sort_key=extra WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9e24b71a-0c98-495a-8bb6-e839f1be2adf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/ports?sort_key=internal_info WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3f9363da-e85d-4420-8416-709a358b2c1b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value internal_info is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/ports?sort_key=local_link_connection WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5a3bcb3f-f7ee-40b9-a50b-2a91a854dda0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value local_link_connection is an invalid field for sorting\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json_in_name [0.046623s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/node.json WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d50bd950-6d72-4f63-9216-dd841dba1d44 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:58.503831+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_not_allowed [0.045858s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?sort_key=pxe_enabled WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-25a61e74-77b3-41b9-8c4b-d57797053323 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.18 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json_not_found [0.038922s] ... 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-03dfe6aa-4454-42e0-82aa-9ad04cbe8787 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123.json could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_older_version [0.235317s] ... 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-e24d911a-dd73-4242-88fd-83dac42688e9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.4 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionAutoDiscovery.test_enroll [0.053633s] ... 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-49f2ac15-5682-4849-b265-93d6fae2c810 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "b9f551e6-e75c-47eb-ab05-5b8e9e820e00"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach [0.033698s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'a58f4b50-cdbd-4721-a23f-90669404e96e'} GOT Response: 204 No Content Openstack-Request-Id: req-99206b1a-2f9e-4d29-8e04-60c0e33441c1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_no_agent_secret [0.049173s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a4367afc-7ce5-46f4-beca-360af09a71ed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.52 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:58.594155+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePatch.test_node_add_parent_node_not_uuid [0.214014s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/1121722e-2906-48a7-b9dc-3652a562d99c WITH [{'path': '/parent_node', 'value': 'djarin', 'op': 'add'}] GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-2a63d342-2efb-43eb-9fe7-456ba0f4e98b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"(sqlite3.ProgrammingError) Error binding parameter 1: type 'MagicMock' is not supported\\n[SQL: SELECT allocations.id AS allocations_id, allocations.uuid AS allocations_uuid, allocations.name AS allocations_name, allocations.node_id AS allocations_node_id, allocations.state AS allocations_state, allocations.owner AS allocations_owner, allocations.last_error AS allocations_last_error, allocations.resource_class AS allocations_resource_class, allocations.traits AS allocations_traits, allocations.candidate_nodes AS allocations_candidate_nodes, allocations.extra AS allocations_extra, allocations.conductor_affinity AS allocations_conductor_affinity, allocations.version AS allocations_version, allocations.created_at AS allocations_created_at, allocations.updated_at AS allocations_updated_at \\nFROM allocations \\nWHERE allocations.id = ?]\\n[parameters: (,)]\\n(Background on this error at: https://sqlalche.me/e/20/f405)\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionAutoDiscovery.test_override_defaults [0.041314s] ... 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-b0205806-225f-41c0-bfcb-14d1efa95f36 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "aa016915-4c38-4e4d-89b5-aa6c967592be"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_by_node_name [0.041703s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/node-39/vifs WITH {'id': '5a275404-36fc-48ca-bf7a-f0aa1907d2a0'} GOT Response: 204 No Content Openstack-Request-Id: req-85b0599f-2275-4415-b30d-b939dd3c1da8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_suffix [0.047292s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/test.1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-936adfa7-e244-4115-95ff-58f84a666b36 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:58.640643+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionAutoDiscovery.test_wrong_driver [0.038886s] ... 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-d6fa63ba-5f9c-4aae-9f16-ac7168f7db06 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"An unknown exception occurred.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_conductor_unavailable [0.051047s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/node-39/vifs WITH {'id': 'd6961fb7-5f3d-434a-abca-47afcd423405'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d4e74519-edac-4b59-8f1c-a42a9dfd9900 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"boom\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_bmc_address_as_none [0.049234s] ... 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-66d62958-a69b-420c-a586-118b48045c23 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "0b069c47-a4bb-4cfb-b145-f0e97cd8ad66"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_owner_fields [0.063489s] ... 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-652a176a-9d40-4a9e-95de-78aaab8193c0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"owner": "fred", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_invalid_vif_id [0.034847s] ... 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-865a7a4f-be16-4e62-a917-dbde3914a15c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID or name for id: invalid%id^\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_inspector_compatibility [0.039724s] ... 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-e3acef0c-98fd-43c4-84fc-7d806ba5c824 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "8c7973af-8ba2-4e02-ba33-4980ec267c54"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_no_vif_id [0.033719s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'bad_id': 'd852017b-7554-434f-a04e-4f4ee3a0eb0d'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-df1e0ec6-bde5-4216-a67b-b53991e8253d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for vif: 'id' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_protected_fields [0.046802s] ... 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-9bc31706-2a8a-4b11-bb93-81ff7180cc96 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"protected": true, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePatch.test_node_remove_parent [0.172712s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/7ce4864f-47d3-440f-9590-2bb62f4039e7 WITH [{'path': '/parent_node', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-74eeff41-79f6-4a70-b98f-a03aeea24cd9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:58.668295+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_locked [0.042518s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': '8da16b4a-d3c9-4ec7-883f-bf6f0f7970c7'} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-e1d34d71-88d0-4837-b9b8-89c845b335a8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node is locked by host , please retry after the current operation is completed.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_retired_fields [0.054044s] ... 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-7468146b-a516-42fe-bcb9-1213bf78d6ee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"retired": true, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_not_found [0.038034s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/doesntexist/vifs WITH {'id': '42f26e9f-2046-44dd-84df-a89c2de9d9bf'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1aecfe2f-8d2d-4836-b62f-500c763e2c35 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node doesntexist could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_multi_shard_as_list [0.080337s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?shard=foo&shard=bar WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-542bd5e6-797e-4bcb-abde-ee241d17e9b4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "1ae22916-827c-4466-b871-c68209902fa6", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1ae22916-827c-4466-b871-c68209902fa6", "rel": "self"}, {"href": "http://localhost/nodes/1ae22916-827c-4466-b871-c68209902fa6", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_port_uuid_and_portgroup_uuid [0.034137s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': '0165b8ac-3392-4f9e-aef9-d8d17bd85873', 'port_uuid': 'port-uuid', 'portgroup_uuid': 'portgroup-uuid'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6ea6413b-a60e-4782-8793-d90b98810857 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.67 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot specify both port_uuid and portgroup_uuid\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_port_uuid_and_portgroup_uuid_old [0.033152s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs WITH {'id': 'b03db462-337c-49b5-b059-71d36925bd62', 'port_uuid': 'port-uuid', 'portgroup_uuid': 'portgroup-uuid'} GOT Response: 204 No Content Openstack-Request-Id: req-d413d34a-7eab-410d-b321-0566b2eaed4b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach [0.032796s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/6c5975a2-e4fd-4ccd-b87f-829440f5c914 GOT Response: 204 No Content Openstack-Request-Id: req-aece297b-ce5c-47fd-9ecd-1f86140c59fc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_multi_shard_detail [0.080843s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?shard=foo,bar WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-39147bb3-f792-478f-a59c-e3f7faec5d68 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "b8e0287f-3951-4bc8-b570-bfdd85c60b77", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/b8e0287f-3951-4bc8-b570-bfdd85c60b77", "rel": "self"}, {"href": "http://localhost/nodes/b8e0287f-3951-4bc8-b570-bfdd85c60b77", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_by_node_name [0.032552s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/node-39/vifs/ee00f2e2-bbfd-4085-bace-e59f6572d08f GOT Response: 204 No Content Openstack-Request-Id: req-968e4a34-4fb3-48f8-8053-9a7f17566137 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_invalid_schema [0.264765s] ... 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-d8e4e210-99bb-4955-82d2-b16bf503a394 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for data: 'interfaces' is a required property\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_locked [0.038266s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/96a7d95e-f41c-4d36-a9ad-7ee986b76764 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-b815c373-f0b8-41cf-ade1-1e77f7265ced X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node is locked by host , please retry after the current operation is completed.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_shard [0.076216s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?shard=foo WITH {'fields': 'shard'} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ba46bd1e-553d-487a-b943-c39b12c5756b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"nodes": [{"shard": "foo", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_new_api [0.046126s] ... 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-4db0c6c6-1c6b-41be-9320-e131e7d87002 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "76db8c1e-639b-4cfb-9c5e-7857dcde8b9f", "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/76db8c1e-639b-4cfb-9c5e-7857dcde8b9f", "rel": "self"}, {"href": "http://localhost/nodes/76db8c1e-639b-4cfb-9c5e-7857dcde8b9f", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "noop", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": null, "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_not_found [0.042621s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/doesntexist/vifs/15fa514a-2877-4724-a937-ecfb2774d000 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f16b5833-7044-4d4e-904a-5e09ad30fa5c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node doesntexist could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_shard_detail_fails_wrong_version [0.056392s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?shard=foo WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-539f269c-3884-4188-a196-9c05704abd99 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.82\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields [0.268609s] ... 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-10478d52-7228-458e-b2c2-92a2f00d9b41 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"storage_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_list [0.034718s] ... 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-6075fc6c-5f64-4372-bcb0-e198b3b07cf1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"vifs": []} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_no_usable_lookup_data [0.043616s] ... 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-5f52a4eb-414d-4b2a-92bb-2732ffd815d1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No lookup information provided\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields_invalid_api_version [0.038265s] ... 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-d2f98af1-29f3-4b5a-8322-4b2fd5b0ed58 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_subcontroller_old_version [0.033078s] ... 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\": \"\"}"} {2} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspectionScopedRBAC.test_old_api_version [0.041293s] ... 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-16030d29-0f71-4463-bd21-2db841ca407c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"API version 1.84 or newer is required\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_shard_fails_wrong_version [0.066290s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?shard=foo WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-409cd2bd-5e14-40ff-a645-05308614571a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.82\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_max_version [0.025356s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cba1ff0b-7c5f-4d61-a677-49003454d05b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "portgroups": [{"href": "http://localhost/v1/portgroups/", "rel": "self"}, {"href": "http://localhost/portgroups/", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "lookup": [{"href": "http://localhost/v1/lookup/", "rel": "self"}, {"href": "http://localhost/lookup/", "rel": "bookmark"}], "heartbeat": [{"href": "http://localhost/v1/heartbeat/", "rel": "self"}, {"href": "http://localhost/heartbeat/", "rel": "bookmark"}], "conductors": [{"href": "http://localhost/v1/conductors/", "rel": "self"}, {"href": "http://localhost/conductors/", "rel": "bookmark"}], "allocations": [{"href": "http://localhost/v1/allocations/", "rel": "self"}, {"href": "http://localhost/allocations/", "rel": "bookmark"}], "events": [{"href": "http://localhost/v1/events/", "rel": "self"}, {"href": "http://localhost/events/", "rel": "bookmark"}], "deploy_templates": [{"href": "http://localhost/v1/deploy_templates/", "rel": "self"}, {"href": "http://localhost/deploy_templates/", "rel": "bookmark"}], "shards": [{"href": "http://localhost/v1/shards/", "rel": "self"}, {"href": "http://localhost/shards/", "rel": "bookmark"}], "runbooks": [{"href": "http://localhost/v1/runbooks/", "rel": "self"}, {"href": "http://localhost/runbooks/", "rel": "bookmark"}], "inspection_rules": [{"href": "http://localhost/v1/inspection_rules/", "rel": "self"}, {"href": "http://localhost/inspection_rules/", "rel": "bookmark"}], "continue_inspection": [{"href": "http://localhost/v1/continue_inspection/", "rel": "self"}, {"href": "http://localhost/continue_inspection/", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices [0.052608s] ... 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-44ff472f-7721-40e6-97e0-59544ef42179 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"supported_boot_devices": ["pxe"]} {2} ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_microversion_headers [0.028696s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_by_name [0.043155s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/spam/management/boot_device/supported WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c140a661-a304-46e7-87ba-ce715a5c6c60 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"supported_boot_devices": ["pxe"]} {2} ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_min_version [0.028787s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3bedc042-a550-448f-a87b-e2157bd5e372 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePost.test_create_node_with_named_parent_node_succeeds [0.111790s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '90aa732b-9595-4583-b826-86abd75acb6c', '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/90aa732b-9595-4583-b826-86abd75acb6c Openstack-Request-Id: req-9c756dca-0ce0-4c19-a293-4cf39398a5d6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"uuid": "90aa732b-9595-4583-b826-86abd75acb6c", "created_at": "2025-05-07T22:57:59.241717+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/90aa732b-9595-4583-b826-86abd75acb6c", "rel": "self"}, {"href": "http://localhost/nodes/90aa732b-9595-4583-b826-86abd75acb6c", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/90aa732b-9595-4583-b826-86abd75acb6c/ports", "rel": "self"}, {"href": "http://localhost/nodes/90aa732b-9595-4583-b826-86abd75acb6c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/90aa732b-9595-4583-b826-86abd75acb6c/states", "rel": "self"}, {"href": "http://localhost/nodes/90aa732b-9595-4583-b826-86abd75acb6c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/90aa732b-9595-4583-b826-86abd75acb6c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/90aa732b-9595-4583-b826-86abd75acb6c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/90aa732b-9595-4583-b826-86abd75acb6c/volume", "rel": "self"}, {"href": "http://localhost/nodes/90aa732b-9595-4583-b826-86abd75acb6c/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_sharded [0.095326s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?sharded=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-413030c3-1a73-436c-84b2-4a5317c9195e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]} GET /v1/nodes?sharded=false WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-352fa381-6ab7-4af0-bc17-b597159cc368 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"nodes": [{"uuid": "2edcb7b8-ee42-46c6-a991-9b9dc872231a", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/2edcb7b8-ee42-46c6-a991-9b9dc872231a", "rel": "self"}, {"href": "http://localhost/nodes/2edcb7b8-ee42-46c6-a991-9b9dc872231a", "rel": "bookmark"}]}, {"uuid": "67f2fc92-9812-43fa-82fa-f6945bcd5db6", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/67f2fc92-9812-43fa-82fa-f6945bcd5db6", "rel": "self"}, {"href": "http://localhost/nodes/67f2fc92-9812-43fa-82fa-f6945bcd5db6", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_route_checks_version [0.030333s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-524e6c75-7fb0-46cd-ae45-94f2ac9aca55 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_iface_not_supported [0.042360s] ... 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-aa249630-2471-44ca-9a93-2487c8382f9b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators [0.042114s] ... 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-59ebe39e-3b24-4c7b-867c-abfbe3226fde X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"indicators": [{"name": "led@chassis", "component": "chassis", "readonly": true, "states": ["OFF", "ON"], "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@chassis", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@chassis", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_collection_links [0.049766s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9f2379eb-3a53-4108-82f4-ab5a8aecf5cd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "9ad4dd60-1b3c-4762-ab27-4ca28bf88c07", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/runbooks/9ad4dd60-1b3c-4762-ab27-4ca28bf88c07", "rel": "self"}, {"href": "http://localhost/runbooks/9ad4dd60-1b3c-4762-ab27-4ca28bf88c07", "rel": "bookmark"}]}, {"uuid": "446b14d1-ac4c-4999-a12d-35af240a115b", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/446b14d1-ac4c-4999-a12d-35af240a115b", "rel": "self"}, {"href": "http://localhost/runbooks/446b14d1-ac4c-4999-a12d-35af240a115b", "rel": "bookmark"}]}, {"uuid": "0b0e72c7-99e3-4a53-98c3-31111802bfea", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/runbooks/0b0e72c7-99e3-4a53-98c3-31111802bfea", "rel": "self"}, {"href": "http://localhost/runbooks/0b0e72c7-99e3-4a53-98c3-31111802bfea", "rel": "bookmark"}]}], "next": "http://localhost/v1/runbooks?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=0b0e72c7-99e3-4a53-98c3-31111802bfea"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_filtering_by_single_shard_detail [0.079638s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?shard=foo WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-912249ed-59fc-47ef-83e3-6d0307def17c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:59.301562+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.TestListNodes.test_get_supported_indicators_iface_not_supported [0.044206s] ... 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-9556b1f0-0496-4f72-838d-7ddc88dcbb34 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_collection_links_custom_fields [0.046652s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?fields=uuid,steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d95659b5-63b1-4ff9-a1d4-43eb672d1ee5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "5a873bc6-4268-4ec3-a374-074feb9a27c9", "links": [{"href": "http://localhost/v1/runbooks/5a873bc6-4268-4ec3-a374-074feb9a27c9", "rel": "self"}, {"href": "http://localhost/runbooks/5a873bc6-4268-4ec3-a374-074feb9a27c9", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "9aaf40d2-7d2c-4bb9-8046-1761f45c9272", "links": [{"href": "http://localhost/v1/runbooks/9aaf40d2-7d2c-4bb9-8046-1761f45c9272", "rel": "self"}, {"href": "http://localhost/runbooks/9aaf40d2-7d2c-4bb9-8046-1761f45c9272", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "cc97e525-78f3-4e92-9a60-6f72302b30b6", "links": [{"href": "http://localhost/v1/runbooks/cc97e525-78f3-4e92-9a60-6f72302b30b6", "rel": "self"}, {"href": "http://localhost/runbooks/cc97e525-78f3-4e92-9a60-6f72302b30b6", "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=cc97e525-78f3-4e92-9a60-6f72302b30b6"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePost.test_create_node_with_parent_node [0.121227s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '2800a78c-c582-4cf9-b18d-9f34b7035869', '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/2800a78c-c582-4cf9-b18d-9f34b7035869 Openstack-Request-Id: req-d80ea01f-5d43-4b3d-8be2-1c2fb9a65312 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"uuid": "2800a78c-c582-4cf9-b18d-9f34b7035869", "created_at": "2025-05-07T22:57:59.352829+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/2800a78c-c582-4cf9-b18d-9f34b7035869", "rel": "self"}, {"href": "http://localhost/nodes/2800a78c-c582-4cf9-b18d-9f34b7035869", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/2800a78c-c582-4cf9-b18d-9f34b7035869/ports", "rel": "self"}, {"href": "http://localhost/nodes/2800a78c-c582-4cf9-b18d-9f34b7035869/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2800a78c-c582-4cf9-b18d-9f34b7035869/states", "rel": "self"}, {"href": "http://localhost/nodes/2800a78c-c582-4cf9-b18d-9f34b7035869/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2800a78c-c582-4cf9-b18d-9f34b7035869/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2800a78c-c582-4cf9-b18d-9f34b7035869/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2800a78c-c582-4cf9-b18d-9f34b7035869/volume", "rel": "self"}, {"href": "http://localhost/nodes/2800a78c-c582-4cf9-b18d-9f34b7035869/volume", "rel": "bookmark"}]} GET /v1/nodes/2800a78c-c582-4cf9-b18d-9f34b7035869 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f5c7e6fa-dee7-47cd-95ec-7b02ff8fdfb7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"uuid": "2800a78c-c582-4cf9-b18d-9f34b7035869", "created_at": "2025-05-07T22:57:59.352829+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/2800a78c-c582-4cf9-b18d-9f34b7035869", "rel": "self"}, {"href": "http://localhost/nodes/2800a78c-c582-4cf9-b18d-9f34b7035869", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/2800a78c-c582-4cf9-b18d-9f34b7035869/ports", "rel": "self"}, {"href": "http://localhost/nodes/2800a78c-c582-4cf9-b18d-9f34b7035869/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2800a78c-c582-4cf9-b18d-9f34b7035869/states", "rel": "self"}, {"href": "http://localhost/nodes/2800a78c-c582-4cf9-b18d-9f34b7035869/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2800a78c-c582-4cf9-b18d-9f34b7035869/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2800a78c-c582-4cf9-b18d-9f34b7035869/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2800a78c-c582-4cf9-b18d-9f34b7035869/volume", "rel": "self"}, {"href": "http://localhost/nodes/2800a78c-c582-4cf9-b18d-9f34b7035869/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators_versioning [0.039667s] ... 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-981f87e1-76e7-41be-a3cb-58e354fb72f5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.63 {"indicators": [{"name": "led@chassis", "component": "chassis", "readonly": true, "states": ["OFF", "ON"], "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@chassis", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@chassis", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_collection_links_default_limit [0.037137s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-485db750-5c5f-4155-902b-724a6eb92555 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "b15c8063-d5df-41e7-9fc5-0eeb7ac8d985", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/runbooks/b15c8063-d5df-41e7-9fc5-0eeb7ac8d985", "rel": "self"}, {"href": "http://localhost/runbooks/b15c8063-d5df-41e7-9fc5-0eeb7ac8d985", "rel": "bookmark"}]}, {"uuid": "a65bc305-44d8-447b-a321-3c9763c906a0", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/a65bc305-44d8-447b-a321-3c9763c906a0", "rel": "self"}, {"href": "http://localhost/runbooks/a65bc305-44d8-447b-a321-3c9763c906a0", "rel": "bookmark"}]}, {"uuid": "4987be1e-5782-4139-a3e2-e8f6dd73a328", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/runbooks/4987be1e-5782-4139-a3e2-e8f6dd73a328", "rel": "self"}, {"href": "http://localhost/runbooks/4987be1e-5782-4139-a3e2-e8f6dd73a328", "rel": "bookmark"}]}], "next": "http://localhost/v1/runbooks?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=4987be1e-5782-4139-a3e2-e8f6dd73a328"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_get_node_shard_field [0.075364s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-243f5e4f-2123-4a18-a832-978e16d9380b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:59.388878+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "shard": "foo", "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_detail_query [0.032046s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a55ead1d-63d0-4a46-b780-337c60343c38 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "cbd90814-3d35-40fc-b28b-c862ad52bd35", "created_at": "2025-05-07T22:57:59.428374+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/cbd90814-3d35-40fc-b28b-c862ad52bd35", "rel": "self"}, {"href": "http://localhost/runbooks/cbd90814-3d35-40fc-b28b-c862ad52bd35", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeParentNodePost.test_create_node_with_parent_node_fail_wrong_version [0.068211s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': '9dc19093-4c90-41d3-8730-bc3aeb33c038', '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-bb6161cb-de1d-4fc0-9004-673a0ed9fe96 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields [0.042804s] ... 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-51f749a4-b420-45e3-b468-4c02520bb887 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"traits": [], "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach [0.040305s] ... 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-ac58d762-5edc-462e-8d10-78d74578dfd2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields_invalid_api_version [0.041131s] ... 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-ca03421d-2016-4dcb-865b-6db2b9ca345a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.36 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardGets.test_get_node_shard_field_fails_wrong_version [0.079211s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-319c0d0a-c69f-4d19-a171-aee28621ca2c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:59.454745+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_detail_query_false [0.054871s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5b972570-1c8d-4d3b-8f08-f144e30a7092 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "d3f9e221-f57e-42e3-a108-4d22e249db15", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/d3f9e221-f57e-42e3-a108-4d22e249db15", "rel": "self"}, {"href": "http://localhost/runbooks/d3f9e221-f57e-42e3-a108-4d22e249db15", "rel": "bookmark"}]}]} GET /v1/runbooks?detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-107a9955-299a-4ef7-8cc1-ad79d4231a1b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "d3f9e221-f57e-42e3-a108-4d22e249db15", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/d3f9e221-f57e-42e3-a108-4d22e249db15", "rel": "self"}, {"href": "http://localhost/runbooks/d3f9e221-f57e-42e3-a108-4d22e249db15", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_invalid_device_type [0.036132s] ... 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-4b932e77-26b4-41cf-b774-a1c34d14fa49 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for vmedia: 'cat' is not one of ['disk', 'cdrom', 'floppy']\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_detail_sort_key_allowed [0.034928s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?sort_key=name&detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6c5f443d-09c9-454b-8226-c9b96e096c63 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "41edaf28-8760-4122-81d2-5149beaeab20", "created_at": "2025-05-07T22:57:59.516556+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/41edaf28-8760-4122-81d2-5149beaeab20", "rel": "self"}, {"href": "http://localhost/runbooks/41edaf28-8760-4122-81d2-5149beaeab20", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "d71adc86-ad44-47c1-9d43-c8c8fdc1e273", "created_at": "2025-05-07T22:57:59.515466+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/d71adc86-ad44-47c1-9d43-c8c8fdc1e273", "rel": "self"}, {"href": "http://localhost/runbooks/d71adc86-ad44-47c1-9d43-c8c8fdc1e273", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "01e461ca-882e-47c6-8d8f-c4d0aec1a7b3", "created_at": "2025-05-07T22:57:59.514136+00:00", "updated_at": null, "name": "CUSTOM_DT3", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/01e461ca-882e-47c6-8d8f-c4d0aec1a7b3", "rel": "self"}, {"href": "http://localhost/runbooks/01e461ca-882e-47c6-8d8f-c4d0aec1a7b3", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_with_allocation [0.041464s] ... 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-364d3a9e-8d5c-4d4e-9ae6-1a6a98b4bd66 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.52 {"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "allocation_uuid": "0ee85c01-8d2e-4561-80e0-6f02045220c7"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_invalid_image_url [0.038049s] ... 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-1c6cec26-b19f-4389-b5ae-17c73fe8de29 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unsupported or missing URL scheme: \", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_detail_using_query_and_fields [0.036713s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?detail=True&fields=name WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-17e4c094-1db1-44de-9a7e-751b642fbaa6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_clean_step [0.055781s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-99ea1886-ec87-4d10-a45c-18b10756aee5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:59.559120+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-dff869c8-f92a-47d5-95b6-0b420051071c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.7 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:59.559120+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_missing_device_type [0.041371s] ... 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-a24264f6-5c9c-43fb-a768-78ab9bdfde32 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for vmedia: 'device_type' is a required property\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_detail_using_query_false_and_fields [0.042155s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?detail=False&fields=steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6c1cbbd1-30c3-4c70-aa31-2f2b822031d4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"links": [{"href": "http://localhost/v1/runbooks/cd6bddb3-2a18-459e-abc0-a630d9ab91ac", "rel": "self"}, {"href": "http://localhost/runbooks/cd6bddb3-2a18-459e-abc0-a630d9ab91ac", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_missing_image_url [0.036095s] ... 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-4ed2464a-6656-44fb-bfb3-71973ac509f7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for vmedia: 'image_url' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_description [0.053519s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-11f3090f-51b0-423f-8a2d-5b096cc555d5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:59.612541+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-3c29bab1-ebf5-4479-b3b7-36a9e379d759 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.51 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:59.612541+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": "useful piece", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_empty [0.033792s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-10b41083-a8ab-4cb7-9693-60dd12694497 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": []} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardPost.test_create_node_with_shard [0.164168s] ... 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-6ca68373-7b97-4ecb-8ff0-7962a57c3dbe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:59.614710+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-9122b58f-fc00-4aa3-b14f-91add16ebddd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:59.614710+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_all_invalid_api_version [0.030358s] ... 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\"}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_required_only [0.041861s] ... 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-3c7a5f3f-c127-4f6e-a392-76089b62951a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_driver_internal [0.052020s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f3d234e1-565c-4527-a6f3-afbd532bf400 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:59.672072+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-b152bdf5-44a7-4a0b-be01-1c6414b14fcc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.3 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:59.672072+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"foo": "bar"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_collection_custom_fields [0.033289s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?fields=uuid,steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8770ddcf-4c34-4e0a-9957-bc28b5cce3ea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "ab9c9254-7bf1-4df8-8ef6-f1da7a7dbd15", "links": [{"href": "http://localhost/v1/runbooks/ab9c9254-7bf1-4df8-8ef6-f1da7a7dbd15", "rel": "self"}, {"href": "http://localhost/runbooks/ab9c9254-7bf1-4df8-8ef6-f1da7a7dbd15", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "40a08434-0837-4025-90dc-daa832899b8e", "links": [{"href": "http://localhost/v1/runbooks/40a08434-0837-4025-90dc-daa832899b8e", "rel": "self"}, {"href": "http://localhost/runbooks/40a08434-0837-4025-90dc-daa832899b8e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}, {"uuid": "35dd02b5-dd9c-4934-a3ae-2ca4752ef329", "links": [{"href": "http://localhost/v1/runbooks/35dd02b5-dd9c-4934-a3ae-2ca4752ef329", "rel": "self"}, {"href": "http://localhost/runbooks/35dd02b5-dd9c-4934-a3ae-2ca4752ef329", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_attach_wrong_version [0.036068s] ... 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_node.TestListNodes.test_hide_fields_in_newer_versions_inspection [0.051434s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f7145279-448c-42e0-9fe5-e10f971a8ea9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:59.721607+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-97b473ed-61d3-42a5-8493-6a178dcb9804 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.6 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:59.721607+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_everything [0.032291s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia GOT Response: 204 No Content Openstack-Request-Id: req-e1f88ee7-e226-4b0c-9088-a61fded49109 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_collection_pagination_no_uuid [0.044428s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?fields=name&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-566c5867-7341-48df-94bd-63954fedf145 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/runbooks/2bce6133-8863-4193-b082-bbf045944874", "rel": "self"}, {"href": "http://localhost/runbooks/2bce6133-8863-4193-b082-bbf045944874", "rel": "bookmark"}]}, {"name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/b9bddc6b-8a55-4d84-8d6c-c5bbbb95d229", "rel": "self"}, {"href": "http://localhost/runbooks/b9bddc6b-8a55-4d84-8d6c-c5bbbb95d229", "rel": "bookmark"}]}], "next": "http://localhost/v1/runbooks?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=b9bddc6b-8a55-4d84-8d6c-c5bbbb95d229"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardPost.test_create_node_with_shard_fail_wrong_version [0.116935s] ... 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-305207e5-fea0-4199-b413-7e734bcf8ff4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_several_via_argument [0.036804s] ... 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-f3d8329a-de64-48a8-a54c-276937ef8ff5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_custom_fields_invalid_fields [0.060514s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/ad306302-4638-4ada-b42d-f98ed332fb8b?fields=uuid,spongebob WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bb889413-29b8-4f68-8626-989faf22a4b3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_specific_via_argument [0.039439s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia?device_types=cdrom GOT Response: 204 No Content Openstack-Request-Id: req-6c919463-ed43-45f9-84a7-007e292e9757 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_specific_via_url [0.039030s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vmedia/cdrom GOT Response: 204 No Content Openstack-Request-Id: req-7cf66459-bfb5-4b89-b68d-a8f9321140dc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_interface_fields [0.138582s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c33f862e-54df-4693-8e61-8c6ea7e27d74 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:59.806499+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-418dcdba-2119-45b8-a4c8-70dcb8aef0d0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.31 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:59.806499+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"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_one [0.082142s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/d102b908-21b1-44a9-bf5d-f2e1fdbf3c65 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c3542ee6-ef14-404d-a97b-2e06547eaabb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d102b908-21b1-44a9-bf5d-f2e1fdbf3c65", "created_at": "2025-05-07T22:57:59.871319+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/d102b908-21b1-44a9-bf5d-f2e1fdbf3c65", "rel": "self"}, {"href": "http://localhost/runbooks/d102b908-21b1-44a9-bf5d-f2e1fdbf3c65", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_wrong_device_types [0.036729s] ... 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-e110cf3a-f74e-4166-a151-9f75b449c869 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid device type(s) cat (valid are disk, cdrom, floppy)\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_detach_wrong_version [0.031886s] ... 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\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_lowers_conductor_group [0.182930s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_get [0.036528s] ... 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-9106a276-59e8-430a-81b4-5328a5b3f8d0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 [{"media_types": ["CD", "DVD"], "inserted": "false", "image": ""}, {"media_types": ["Floppy", "USBStick"], "inserted": "false", "image": ""}] {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_one_custom_fields [0.081545s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/a39d5d59-3be0-46e0-a7be-0f0eb6f5e6b3?fields=name,steps WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3b600cc5-66ae-406d-8020-b59db294d3f5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/a39d5d59-3be0-46e0-a7be-0f0eb6f5e6b3", "rel": "self"}, {"href": "http://localhost/runbooks/a39d5d59-3be0-46e0-a7be-0f0eb6f5e6b3", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.api.controllers.v1.test_node.TestNodeVmedia.test_get_wrong_version [0.032983s] ... 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-a301dca0-e4d4-41ec-b92d-bb3996791a6c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.92 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The resource could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_get_one_invalid_api_version [0.038427s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/0bb91ffb-78a6-4a73-b59e-72552a5956e0 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.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_remove_chassis_uuid [0.087261s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_name [0.157392s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4d8fc886-0f69-43bf-b4f6-9666fee18f37 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.4 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:59.968479+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-84ce91c3-de29-4bb5-bbe0-f81fe948e837 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:57:59.968479+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_links [0.041196s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/950c8098-4055-4eb5-85db-a5270e737d3b WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0866d470-1276-4e68-83f7-d23f727e597b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "950c8098-4055-4eb5-85db-a5270e737d3b", "created_at": "2025-05-07T22:58:00.037823+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/950c8098-4055-4eb5-85db-a5270e737d3b", "rel": "self"}, {"href": "http://localhost/runbooks/950c8098-4055-4eb5-85db-a5270e737d3b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /v1/runbooks/950c8098-4055-4eb5-85db-a5270e737d3b WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7df2d7cb-f768-4c6e-8bc9-1338bda63bfe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "950c8098-4055-4eb5-85db-a5270e737d3b", "created_at": "2025-05-07T22:58:00.037823+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/950c8098-4055-4eb5-85db-a5270e737d3b", "rel": "self"}, {"href": "http://localhost/runbooks/950c8098-4055-4eb5-85db-a5270e737d3b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /runbooks/950c8098-4055-4eb5-85db-a5270e737d3b WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d05655d3-dc38-4f6f-95b1-88a4a3a49a5b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "950c8098-4055-4eb5-85db-a5270e737d3b", "created_at": "2025-05-07T22:58:00.037823+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/950c8098-4055-4eb5-85db-a5270e737d3b", "rel": "self"}, {"href": "http://localhost/runbooks/950c8098-4055-4eb5-85db-a5270e737d3b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_id [0.042707s] ... 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-19aa37e5-568e-4c35-944d-69b56691dc29 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /chassis_id. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_many [0.043710s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bfe5dc8d-e04d-488f-9951-e438e46f313d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "89dca4d3-9543-4ff2-b61b-4bd986d95c68", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/runbooks/89dca4d3-9543-4ff2-b61b-4bd986d95c68", "rel": "self"}, {"href": "http://localhost/runbooks/89dca4d3-9543-4ff2-b61b-4bd986d95c68", "rel": "bookmark"}]}, {"uuid": "b92230fd-c163-4793-b0f1-2d8ca7c63695", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/b92230fd-c163-4793-b0f1-2d8ca7c63695", "rel": "self"}, {"href": "http://localhost/runbooks/b92230fd-c163-4793-b0f1-2d8ca7c63695", "rel": "bookmark"}]}, {"uuid": "125e1628-8f97-43fd-9cd2-0ea00b515e0a", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/runbooks/125e1628-8f97-43fd-9cd2-0ea00b515e0a", "rel": "self"}, {"href": "http://localhost/runbooks/125e1628-8f97-43fd-9cd2-0ea00b515e0a", "rel": "bookmark"}]}, {"uuid": "e51ae7cc-d082-4721-9d7c-8b86c9c57a81", "name": "CUSTOM_DT3", "links": [{"href": "http://localhost/v1/runbooks/e51ae7cc-d082-4721-9d7c-8b86c9c57a81", "rel": "self"}, {"href": "http://localhost/runbooks/e51ae7cc-d082-4721-9d7c-8b86c9c57a81", "rel": "bookmark"}]}, {"uuid": "73d2d7af-41fa-4b76-be80-ac9ff705c098", "name": "CUSTOM_DT4", "links": [{"href": "http://localhost/v1/runbooks/73d2d7af-41fa-4b76-be80-ac9ff705c098", "rel": "self"}, {"href": "http://localhost/runbooks/73d2d7af-41fa-4b76-be80-ac9ff705c098", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_one [0.032322s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-894ed336-3e97-4a3a-b5c6-5ca0faf1130f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "c82bfba6-024b-4289-b8c3-01b81e465d0f", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/c82bfba6-024b-4289-b8c3-01b81e465d0f", "rel": "self"}, {"href": "http://localhost/runbooks/c82bfba6-024b-4289-b8c3-01b81e465d0f", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_local_link_connection_network_type [0.152062s] ... 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-bda1f5f3-e4c1-4451-b558-dd06ef66cd6b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.64 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:00.066104+00:00", "updated_at": "2025-05-07T22:58:00.155597+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} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_sensitive_data_masked [0.034665s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/324626e5-fb03-421c-bfb8-507c5eab0415 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d6f7e120-a35a-45b7-8960-6e82398262d7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "324626e5-fb03-421c-bfb8-507c5eab0415", "created_at": "2025-05-07T22:58:00.161654+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/324626e5-fb03-421c-bfb8-507c5eab0415", "rel": "self"}, {"href": "http://localhost/runbooks/324626e5-fb03-421c-bfb8-507c5eab0415", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": [], "password": "******"}, "order": 1}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_network_interface [0.112459s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ed3c660c-92dc-47d5-ae0f-4aea4675a80d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.19 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:00.122974+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-6d3f4760-6ee5-415b-81cb-ced331f15f53 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.20 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:00.122974+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_node.TestPatch.test_add_chassis_uuid [0.092006s] ... 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-7ef7e99d-263d-407a-b283-0d74d94e99ef X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:00.113943+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_runbook.TestListRunbooks.test_sort_key [0.051908s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-396b479d-3a03-4af6-b266-2a7853735123 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "a3034d5e-61ee-439d-accf-af62e1959ad9", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/runbooks/a3034d5e-61ee-439d-accf-af62e1959ad9", "rel": "self"}, {"href": "http://localhost/runbooks/a3034d5e-61ee-439d-accf-af62e1959ad9", "rel": "bookmark"}]}, {"uuid": "be160d95-b99e-42d5-add5-b383adbc24ba", "name": "CUSTOM_DT0", "links": [{"href": "http://localhost/v1/runbooks/be160d95-b99e-42d5-add5-b383adbc24ba", "rel": "self"}, {"href": "http://localhost/runbooks/be160d95-b99e-42d5-add5-b383adbc24ba", "rel": "bookmark"}]}, {"uuid": "fa758bd9-e645-4506-8f7d-fdc06aa85a68", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/fa758bd9-e645-4506-8f7d-fdc06aa85a68", "rel": "self"}, {"href": "http://localhost/runbooks/fa758bd9-e645-4506-8f7d-fdc06aa85a68", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_local_link_connection_network_type_old_api [0.079728s] ... 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-d0ccfad8-3147-4c01-b03d-5c5f082c0fb0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.63 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_resource_class [0.087544s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-81b1dc1f-26d1-4174-b925-97ddc45ea4c2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.20 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:00.232791+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-2d142afb-b27b-4f06-8a71-2373f0046b68 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:00.232791+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"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_runbook.TestListRunbooks.test_sort_key_allowed [0.040415s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?sort_key=name&detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-637c1291-f4a3-426b-b43c-851e683aed99 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "f73b467f-19dc-4b1e-88aa-5087772f2765", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/f73b467f-19dc-4b1e-88aa-5087772f2765", "rel": "self"}, {"href": "http://localhost/runbooks/f73b467f-19dc-4b1e-88aa-5087772f2765", "rel": "bookmark"}]}, {"uuid": "96733b4a-e7cc-4e2f-80dc-fe44b4d1f93d", "name": "CUSTOM_DT2", "links": [{"href": "http://localhost/v1/runbooks/96733b4a-e7cc-4e2f-80dc-fe44b4d1f93d", "rel": "self"}, {"href": "http://localhost/runbooks/96733b4a-e7cc-4e2f-80dc-fe44b4d1f93d", "rel": "bookmark"}]}, {"uuid": "db8d9d79-13c0-4767-b583-32a9feb0fd9c", "name": "CUSTOM_DT3", "links": [{"href": "http://localhost/v1/runbooks/db8d9d79-13c0-4767-b583-32a9feb0fd9c", "rel": "self"}, {"href": "http://localhost/runbooks/db8d9d79-13c0-4767-b583-32a9feb0fd9c", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_ok [0.105831s] ... 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-9a1fad7d-7a1f-42b7-81b7-a107c886f268 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:00.205334+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_runbook.TestListRunbooks.test_sort_key_invalid [0.034267s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks?sort_key=extra WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8c8afbb1-be1d-49d2-889d-6721fe2b9cf0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/runbooks?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c4f2ffc8-869f-4b10-9962-b4c7b69342ad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/runbooks?sort_key=steps WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3332d53b-acea-4ace-9a4e-a6f361e62a48 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value steps is an invalid field for sorting\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_storage_interface [0.047912s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-850bda1c-e322-4662-9dd6-c8f696bcbe06 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:00.290613+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-01b66d01-12ec-4262-a3d0-e64a5ad0ea76 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:00.290613+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "storage_interface": "cinder", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uui d": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy [0.024267s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_forbidden [0.018032s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_forbidden_no_project [0.018818s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_traits [0.051429s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-21833aa1-5e45-43d3-a66e-31544b4d8c63 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.36 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:00.341363+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-183caf40-0ae8-4936-aa83-7c3b194522d2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:00.341363+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"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_non_admin [0.018427s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root [0.095509s] ... 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-609181ca-bece-417b-8039-12ef8b55da11 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:00.311139+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_port.TestPatch.test_add_multi [0.152531s] ... 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-aa967ed4-44e0-440e-b96e-10b9fffa6ae1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:00.307035+00:00", "updated_at": "2025-05-07T22:58:00.387686+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_non_admin_owner_proj_mismatch [0.019509s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_volume [0.047997s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1c920964-6dea-4d4c-8dae-f5742938237d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.31 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:00.392552+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-e1e10aed-3ca6-40bc-9554-7db58a1976ff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:00.392552+00:00", "updated_at": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "b ookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy_with_owner [0.019865s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root_non_existent [0.048936s] ... 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-09ab7414-dac5-44ac-a3c3-b405992572b8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_cant_set_only_logical [0.034636s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links [0.060732s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/13c05e5f-e10a-49c4-b331-f7a00b9257b0 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1431d1d5-1785-462a-b386-6d036057835a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "13c05e5f-e10a-49c4-b331-f7a00b9257b0", "created_at": "2025-05-07T22:58:00.446365+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/13c05e5f-e10a-49c4-b331-f7a00b9257b0", "rel": "self"}, {"href": "http://localhost/nodes/13c05e5f-e10a-49c4-b331-f7a00b9257b0", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/13c05e5f-e10a-49c4-b331-f7a00b9257b0/ports", "rel": "self"}, {"href": "http://localhost/nodes/13c05e5f-e10a-49c4-b331-f7a00b9257b0/ports", "rel": "bookmark"}]} GET /v1/nodes/13c05e5f-e10a-49c4-b331-f7a00b9257b0 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3fc7d343-2011-4472-8be6-f441eecc8a21 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "13c05e5f-e10a-49c4-b331-f7a00b9257b0", "created_at": "2025-05-07T22:58:00.446365+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/13c05e5f-e10a-49c4-b331-f7a00b9257b0", "rel": "self"}, {"href": "http://localhost/nodes/13c05e5f-e10a-49c4-b331-f7a00b9257b0", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/13c05e5f-e10a-49c4-b331-f7a00b9257b0/ports", "rel": "self"}, {"href": "http://localhost/nodes/13c05e5f-e10a-49c4-b331-f7a00b9257b0/ports", "rel": "bookmark"}]} GET /nodes/13c05e5f-e10a-49c4-b331-f7a00b9257b0 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-04145db1-bf79-4910-a3fd-ba58746bceed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "13c05e5f-e10a-49c4-b331-f7a00b9257b0", "created_at": "2025-05-07T22:58:00.446365+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/13c05e5f-e10a-49c4-b331-f7a00b9257b0", "rel": "self"}, {"href": "http://localhost/nodes/13c05e5f-e10a-49c4-b331-f7a00b9257b0", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/13c05e5f-e10a-49c4-b331-f7a00b9257b0/ports", "rel": "self"}, {"href": "http://localhost/nodes/13c05e5f-e10a-49c4-b331-f7a00b9257b0/ports", "rel ": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_cleaning [0.051444s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/8196609d-bbb0-40eb-a330-1213582c9b13 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-a7e5ca94-8f97-4510-93fd-d6852a660265 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 8196609d-bbb0-40eb-a330-1213582c9b13 can not be updated while a state transition is in progress.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_id [0.089538s] ... 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-dcd67571-fb27-445a-9b3f-7adeeddc5be7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: address, extra, is_smartnic, local_link_connection, node_ident, node_uuid, physical_network, portgroup_uuid, pxe_enabled, name, description\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_cant_set_only_physical [0.035647s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_invalid [0.039822s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links_public_url [0.056925s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/ac2e9433-461f-434b-bef1-1a8613ab50f6 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6a3b406e-9646-4aad-b6af-d5347c30747c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "ac2e9433-461f-434b-bef1-1a8613ab50f6", "created_at": "2025-05-07T22:58:00.508259+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/ac2e9433-461f-434b-bef1-1a8613ab50f6", "rel": "self"}, {"href": "http://foo/nodes/ac2e9433-461f-434b-bef1-1a8613ab50f6", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://foo/v1/nodes/ac2e9433-461f-434b-bef1-1a8613ab50f6/ports", "rel": "self"}, {"href": "http://foo/nodes/ac2e9433-461f-434b-bef1-1a8613ab50f6/ports", "rel": "bookmark"}]} GET /v1/nodes/ac2e9433-461f-434b-bef1-1a8613ab50f6 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-10044031-ccf8-4e91-bb36-600980db6e30 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "ac2e9433-461f-434b-bef1-1a8613ab50f6", "created_at": "2025-05-07T22:58:00.508259+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/ac2e9433-461f-434b-bef1-1a8613ab50f6", "rel": "self"}, {"href": "http://foo/nodes/ac2e9433-461f-434b-bef1-1a8613ab50f6", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://foo/v1/nodes/ac2e9433-461f-434b-bef1-1a8613ab50f6/ports", "rel": "self"}, {"href": "http://foo/nodes/ac2e9433-461f-434b-bef1-1a8613ab50f6/ports", "rel": "bookmark"}]} GET /nodes/ac2e9433-461f-434b-bef1-1a8613ab50f6 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-909a17ed-cca2-461a-af52-ade54b803986 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "ac2e9433-461f-434b-bef1-1a8613ab50f6", "created_at": "2025-05-07T22:58:00.508259+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/ac2e9433-461f-434b-bef1-1a8613ab50f6", "rel": "self"}, {"href": "http://foo/nodes/ac2e9433-461f-434b-bef1-1a8613ab50f6", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://foo/v1/nodes/ac2e9433-461f-434b-bef1-1a8613ab50f6/ports", "rel": "self"}, {"href": "http://foo/nodes/ac2e9433-461f-434b-bef1-1a8613ab50f6/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_unmanaged [0.032779s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_deployfail [0.092059s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/df3e24a8-046b-4e18-b977-0d2b8d983a76 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5798a625-3423-4423-8dd3-2a02f023dc7f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "df3e24a8-046b-4e18-b977-0d2b8d983a76", "created_at": "2025-05-07T22:58:00.525579+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/df3e24a8-046b-4e18-b977-0d2b8d983a76", "rel": "self"}, {"href": "http://localhost/nodes/df3e24a8-046b-4e18-b977-0d2b8d983a76", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/df3e24a8-046b-4e18-b977-0d2b8d983a76/ports", "rel": "self"}, {"href": "http://localhost/nodes/df3e24a8-046b-4e18-b977-0d2b8d983a76/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes [0.054531s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?maintenance=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-565256f7-2123-4844-9ab2-33a306798b4d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "d09ba865-2f20-4ed5-b0e0-1d117d7061ae", "instance_uuid": null, "maintenance": true, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/d09ba865-2f20-4ed5-b0e0-1d117d7061ae", "rel": "self"}, {"href": "http://localhost/nodes/d09ba865-2f20-4ed5-b0e0-1d117d7061ae", "rel": "bookmark"}]}, {"uuid": "08dbdf79-e7a9-430d-99f0-4082118041f2", "instance_uuid": null, "maintenance": true, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/08dbdf79-e7a9-430d-99f0-4082118041f2", "rel": "self"}, {"href": "http://localhost/nodes/08dbdf79-e7a9-430d-99f0-4082118041f2", "rel": "bookmark"}]}]} GET /v1/nodes?maintenance=false WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cae81a9c-7ebe-4163-bba0-979acac2dee6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "fefa0431-5191-43da-9128-fe8dfe2ff808", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/fefa0431-5191-43da-9128-fe8dfe2ff808", "rel": "self"}, {"href": "http://localhost/nodes/fefa0431-5191-43da-9128-fe8dfe2ff808", "rel": "bookmark"}]}, {"uuid": "658f84e8-a1cd-4d17-8444-70e1abae0faa", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/658f84e8-a1cd-4d17-8444-70e1abae0faa", "rel": "self"}, {"href": "http://localhost/nodes/658f84e8-a1cd-4d17-8444-70e1abae0faa", "rel": "bookmark"}]}, {"uuid": "69c33675-381d-4e74-8061-3f22366c901b", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/69c33675-381d-4e74-8061-3f22366c901b", "rel": "self"}, {"href": "http://localhost/nodes/69c33675-381d-4e74-8061-3f22366c901b", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_net_type_unmanaged_combine_ok [0.033117s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_invalid [0.051423s] ... 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-c4b403ab-25fb-4984-add7-6daa3e9fd165 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node deadbeef-0000-1111-2222-333333333333: Cannot change name to invalid name ''\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_set_both_switches [0.035744s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_uuid [0.146594s] ... 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-e281f99f-f16f-458f-8022-9dc45dbf0c6d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:00.544665+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.TestListNodes.test_maintenance_nodes_associated [0.063883s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?associated=true&maintenance=false WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fb469c9c-8210-4eca-87c8-a1fbec9cfe22 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "e6bcba89-51a7-4c82-a38f-f6d0d0f5c5ca", "instance_uuid": "2f2a9c0d-c771-4c18-8c7b-eebb9f8ab466", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/e6bcba89-51a7-4c82-a38f-f6d0d0f5c5ca", "rel": "self"}, {"href": "http://localhost/nodes/e6bcba89-51a7-4c82-a38f-f6d0d0f5c5ca", "rel": "bookmark"}]}, {"uuid": "2804187c-5850-4976-8d47-3c2808678867", "instance_uuid": "27a2efff-8858-47c4-841d-affc4f02e0e7", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/2804187c-5850-4976-8d47-3c2808678867", "rel": "self"}, {"href": "http://localhost/nodes/2804187c-5850-4976-8d47-3c2808678867", "rel": "bookmark"}]}, {"uuid": "5d3df20a-ebd7-4526-a8a2-52d18ce7e4f0", "instance_uuid": "2100cc1a-e71d-478b-9062-a453f1f60ee0", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/5d3df20a-ebd7-4526-a8a2-52d18ce7e4f0", "rel": "self"}, {"href": "http://localhost/nodes/5d3df20a-ebd7-4526-a8a2-52d18ce7e4f0", "rel": "bookmark"}]}, {"uuid": "b53bd315-805b-409a-9920-56e7d6290c1c", "instance_uuid": "6f9d49a5-615e-4ca5-bb24-da3882b22ca3", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/b53bd315-805b-409a-9920-56e7d6290c1c", "rel": "self"}, {"href": "http://localhost/nodes/b53bd315-805b-409a-9920-56e7d6290c1c", "rel": "bookmark"}]}]} GET /v1/nodes?associated=true&maintenance=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cea7f5c7-adfa-48a5-9eba-dd40828188f6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": "a63d25d9-0636-48cb-bdcb-015e6a47a62f", "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-82d4e50d-778d-4fcb-ab66-ce1c7b6331ad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": "a63d25d9-0636-48cb-bdcb-015e6a47a62f", "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"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type [0.032095s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_not_acceptable [0.045379s] ... 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-b50e0565-f891-487c-a328-1c1183910bfd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_error [0.031130s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?associated=true&maintenance=blah WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-725d029c-a3a9-45c5-bd3c-c137914b0585 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid maintenance: Unrecognized value 'blah', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_datapath_id [0.031102s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_invalid [0.046500s] ... 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-fa1af350-9f5f-4f16-9ed6-0cbc05aa415a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node deadbeef-0000-1111-2222-333333333333: Cannot change name to invalid name 'i am invalid'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_empty_value [0.033524s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many [0.049067s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c4c5b0c4-0476-419c-aa3c-83d929277212 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "0ef54eef-ef90-4b9b-a67c-f86fa1766efc", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/0ef54eef-ef90-4b9b-a67c-f86fa1766efc", "rel": "self"}, {"href": "http://localhost/nodes/0ef54eef-ef90-4b9b-a67c-f86fa1766efc", "rel": "bookmark"}]}, {"uuid": "b2ff1fe0-ddf9-49dc-9faa-1088bb7ae85e", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/b2ff1fe0-ddf9-49dc-9faa-1088bb7ae85e", "rel": "self"}, {"href": "http://localhost/nodes/b2ff1fe0-ddf9-49dc-9faa-1088bb7ae85e", "rel": "bookmark"}]}, {"uuid": "d33918b9-8ee0-4dbc-a7fb-7aef5827fd01", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/d33918b9-8ee0-4dbc-a7fb-7aef5827fd01", "rel": "self"}, {"href": "http://localhost/nodes/d33918b9-8ee0-4dbc-a7fb-7aef5827fd01", "rel": "bookmark"}]}, {"uuid": "0a9a8673-2313-4ace-9568-eaf03c648bcb", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/0a9a8673-2313-4ace-9568-eaf03c648bcb", "rel": "self"}, {"href": "http://localhost/nodes/0a9a8673-2313-4ace-9568-eaf03c648bcb", "rel": "bookmark"}]}, {"uuid": "64335c8a-faf8-4b8b-aa8d-bd4d6eb35e54", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/64335c8a-faf8-4b8b-aa8d-bd4d6eb35e54", "rel": "self"}, {"href": "http://localhost/nodes/64335c8a-faf8-4b8b-aa8d-bd4d6eb35e54", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_invalid_key [0.032344s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_forbidden [0.033182s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-29cdc88c-b403-4e05-b25f-539042f37ebc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network [0.152808s] ... 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-3e1bfb77-a24c-46e0-9e91-49e740203e4f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:00.691477+00:00", "updated_at": "2025-05-07T22:58:00.761373+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_utils.TestLocalLinkValidation.test_local_link_connection_type_local_link_keys_mandatory [0.030921s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_ok [0.088311s] ... 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-6c8aae72-1348-4acd-ac99-e460f1dbe774 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "deadbeef-0000-1111-2222-333333333333", "created_at": "2025-05-07T22:58:00.746826+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_missing_local_link_mandatory_key [0.030992s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_have_names [0.049737s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3e365548-a2ac-4106-a4e9-001c7afd4371 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"nodes": [{"uuid": "df743423-2fdc-4752-ad5a-26df1a5430d0", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-0", "links": [{"href": "http://localhost/v1/nodes/df743423-2fdc-4752-ad5a-26df1a5430d0", "rel": "self"}, {"href": "http://localhost/nodes/df743423-2fdc-4752-ad5a-26df1a5430d0", "rel": "bookmark"}]}, {"uuid": "56c4c724-aed5-4351-9e8f-342df6046b6e", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-1", "links": [{"href": "http://localhost/v1/nodes/56c4c724-aed5-4351-9e8f-342df6046b6e", "rel": "self"}, {"href": "http://localhost/nodes/56c4c724-aed5-4351-9e8f-342df6046b6e", "rel": "bookmark"}]}, {"uuid": "e9473264-47e1-4f27-aa70-9c0472f77d64", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-2", "links": [{"href": "http://localhost/v1/nodes/e9473264-47e1-4f27-aa70-9c0472f77d64", "rel": "self"}, {"href": "http://localhost/nodes/e9473264-47e1-4f27-aa70-9c0472f77d64", "rel": "bookmark"}]}, {"uuid": "ab47ddbe-499f-4f9d-a55e-dad3bd4b6cf9", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-3", "links": [{"href": "http://localhost/v1/nodes/ab47ddbe-499f-4f9d-a55e-dad3bd4b6cf9", "rel": "self"}, {"href": "http://localhost/nodes/ab47ddbe-499f-4f9d-a55e-dad3bd4b6cf9", "rel": "bookmark"}]}, {"uuid": "da1a5e75-27ed-42fa-97de-e9a20040d4a7", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": "node-4", "links": [{"href": "http://localhost/v1/nodes/da1a5e75-27ed-42fa-97de-e9a20040d4a7", "rel": "self"}, {"href": "http://localhost/nodes/da1a5e75-27ed-42fa-97de-e9a20040d4a7", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_not_mac_or_datapath_id [0.030245s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbid_project_mismatch [0.029224s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?project=54321 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fdba022a-2ce0-450d-a07e-c01241d623cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_old_api_version [0.078070s] ... 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-9d3f86d8-07b4-4f04-8211-88f291555253 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_hostname_missing [0.032243s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_reserved [0.087620s] ... 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-e6289a78-80ab-48ff-b895-59fb5af949ff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"maintenance\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} PATCH /v1/nodes/deadbeef-0000-1111-2222-333333333333 WITH [{'path': '/name', 'op': 'add', 'value': 'management'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4f37445a-c875-4c73-9643-59d3f0192172 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"management\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} PATCH /v1/nodes/deadbeef-0000-1111-2222-333333333333 WITH [{'path': '/name', 'op': 'add', 'value': 'states'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8e6075fc-f3c4-4b1b-bf88-2814b0e46235 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"states\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} PATCH /v1/nodes/deadbeef-0000-1111-2222-333333333333 WITH [{'path': '/name', 'op': 'add', 'value': 'vendor_passthru'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c68468e0-decd-4416-a95e-8252cd993a35 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"vendor_passthru\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} PATCH /v1/nodes/deadbeef-0000-1111-2222-333333333333 WITH [{'path': '/name', 'op': 'add', 'value': 'detail'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8ce844eb-2e8b-4013-84ac-28f5b2f339b5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"detail\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} PATCH /v1/nodes/deadbeef-0000-1111-2222-333333333333 WITH [{'path': '/name', 'op': 'add', 'value': 'validate'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6d2cf774-eac8-4387-8837-d123d4815fa5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"validate\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbidden [0.056404s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4fe91115-a70a-47d4-a37b-4d407390af1e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"nodes": [{"uuid": "f6ba9b0c-f4df-4e27-9049-d95517c459b2", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/f6ba9b0c-f4df-4e27-9049-d95517c459b2", "rel": "self"}, {"href": "http://localhost/nodes/f6ba9b0c-f4df-4e27-9049-d95517c459b2", "rel": "bookmark"}]}, {"uuid": "d8b8d977-6719-462a-815e-e9359240040c", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/d8b8d977-6719-462a-815e-e9359240040c", "rel": "self"}, {"href": "http://localhost/nodes/d8b8d977-6719-462a-815e-e9359240040c", "rel": "bookmark"}]}, {"uuid": "9e4274c4-f24b-4c10-bed6-502e86ed0588", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/9e4274c4-f24b-4c10-bed6-502e86ed0588", "rel": "self"}, {"href": "http://localhost/nodes/9e4274c4-f24b-4c10-bed6-502e86ed0588", "rel": "bookmark"}]}, {"uuid": "14568a0f-f7b0-42ca-b309-ea2798c19347", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/14568a0f-f7b0-42ca-b309-ea2798c19347", "rel": "self"}, {"href": "http://localhost/nodes/14568a0f-f7b0-42ca-b309-ea2798c19347", "rel": "bookmark"}]}, {"uuid": "c90a90a9-a871-4843-9a4e-bbafa999a815", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/c90a90a9-a871-4843-9a4e-bbafa999a815", "rel": "self"}, {"href": "http://localhost/nodes/c90a90a9-a871-4843-9a4e-bbafa999a815", "rel": "bookmark"}]}, {"uuid": "4d227803-c4cb-4609-b63d-792474554534", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/4d227803-c4cb-4609-b63d-792474554534", "rel": "self"}, {"href": "http://localhost/nodes/4d227803-c4cb-4609-b63d-792474554534", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_mandatory [0.041343s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbidden_no_project [0.029701s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-40e94735-854d-4863-97da-4a1b79049edd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_upgrade [0.075962s] ... 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-71cd3ceb-6e09-47fa-a912-36008e92710d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_port_id_missing [0.032124s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_mask_available_state [0.043268s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4f17bf77-3e9c-4343-9faa-be278ce0df84 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:00.973604+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-eb6cf5b8-ba79-4006-bf3d-e7cba9934f68 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.2 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:00.973604+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_with_optional [0.037030s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_post_name [0.022630s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_pre_name [0.020779s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association [0.048554s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/?limit=3&associated=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ba0dea05-ef87-4502-867d-1070bcbe6b8f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "d6dd80f0-a8b0-4d01-ad24-c171ba4d01c5", "instance_uuid": "07bf91b3-12bf-4ea4-8374-15e74f423e2b", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/d6dd80f0-a8b0-4d01-ad24-c171ba4d01c5", "rel": "self"}, {"href": "http://localhost/nodes/d6dd80f0-a8b0-4d01-ad24-c171ba4d01c5", "rel": "bookmark"}]}, {"uuid": "11b3a4a3-e55b-44a4-b929-5adeba941bae", "instance_uuid": "7aa1311a-e57a-4576-b37a-0c24436814d2", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/11b3a4a3-e55b-44a4-b929-5adeba941bae", "rel": "self"}, {"href": "http://localhost/nodes/11b3a4a3-e55b-44a4-b929-5adeba941bae", "rel": "bookmark"}]}, {"uuid": "10fc5312-6176-4f1a-aac9-4c279f8c857f", "instance_uuid": "2473d436-b127-4dbb-9d26-0b67ad2412d1", "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/10fc5312-6176-4f1a-aac9-4c279f8c857f", "rel": "self"}, {"href": "http://localhost/nodes/10fc5312-6176-4f1a-aac9-4c279f8c857f", "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=10fc5312-6176-4f1a-aac9-4c279f8c857f"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_name_no_logical_name [0.020452s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_by_uuid_no_logical_name [0.021160s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association_with_detail [0.052341s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail?limit=3&associated=true WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8027a999-7b69-4b78-a32d-2466dac8d5c5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "c4c47778-a976-4d25-a933-5cfe1a14d721", "created_at": "2025-05-07T22:58:01.074804+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": "ef0e041a-1edd-4b23-85f5-00ef8f2a4267", "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/c4c47778-a976-4d25-a933-5cfe1a14d721", "rel": "self"}, {"href": "http://localhost/nodes/c4c47778-a976-4d25-a933-5cfe1a14d721", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c4c47778-a976-4d25-a933-5cfe1a14d721/ports", "rel": "self"}, {"href": "http://localhost/nodes/c4c47778-a976-4d25-a933-5cfe1a14d721/ports", "rel": "bookmark"}]}, {"uuid": "a63c6a42-155b-490f-9612-8eb14f80a146", "created_at": "2025-05-07T22:58:01.076219+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": "05420a79-78a2-4bf8-91f0-7ffbde5597bd", "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/a63c6a42-155b-490f-9612-8eb14f80a146", "rel": "self"}, {"href": "http://localhost/nodes/a63c6a42-155b-490f-9612-8eb14f80a146", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a63c6a42-155b-490f-9612-8eb14f80a146/ports", "rel": "self"}, {"href": "http://localhost/nodes/a63c6a42-155b-490f-9612-8eb14f80a146/ports", "rel": "bookmark"}]}, {"uuid": "369afe23-3d4a-4e68-a4da-262a71553a4c", "created_at": "2025-05-07T22:58:01.077711+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": "e67c6464-a5a5-469e-adcd-0b3383bb4d65", "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/369afe23-3d4a-4e68-a4da-262a71553a4c", "rel": "self"}, {"href": "http://localhost/nodes/369afe23-3d4a-4e68-a4da-262a71553a4c", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/369afe23-3d4a-4e68-a4da-262a71553a4c/ports", "rel": "self"}, {"href": "http://localhost/nodes/369afe23-3d4a-4e68-a4da-262a71553a4c/ports", "rel": "bookmark"}]}], "next": "http://localhost/v1/nodes/detail?sort_key=id&sort_dir=asc&associated=True&limit=3&marker=369afe23-3d4a-4e68-a4da-262a71553a4c"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_name [0.022986s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_portgroup_uuid [0.169001s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': '84e05ed5-bc7c-4ea8-9c98-e88a18cf6715', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aeed4e6d-008b-4e15-bcd7-0b52ee9be64b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:01.004620+00:00", "updated_at": "2025-05-07T22:58:01.115032+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": "84e05ed5-bc7c-4ea8-9c98-e88a18cf6715"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_uuid [0.028377s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_false_field [0.043133s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b92f516f-777f-49a3-998b-20934faafe6b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:01.125806+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_invalid_name [0.019424s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_replace_invalid [0.258732s] ... 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-58f1dfbb-e012-4e34-8f55-47ec21302424 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123: Cannot change name to invalid name 'Guido Van Error'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_is_valid_node_name [0.019567s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_hidden_in_lower_version [0.050121s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9811f958-57f4-4eca-988f-09ac45b8cf1a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:01.170975+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-91975bdc-58d5-4dd5-a131-89d6d886e343 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:01.170975+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "targe t_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_populate_node_uuid [0.019976s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_forbidden [0.047656s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/4f3ffeae-0300-414d-8ab0-1a1260affcfd WITH [{'path': '/allocation_uuid', 'op': 'replace', 'value': '66166365-b6ac-4215-bbe9-6d2e6b5f2b80'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a01bd6fc-64a8-4dea-8520-145af883dafe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /allocation_uuid. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_id_with_uuid [0.027872s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_null_field [0.045361s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6e2e101e-6b84-4874-8d27-f01fad121073 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:01.223054+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_id_with_uuid_not_found [0.020375s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_allocation_uuid_forbidden [0.051205s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/a9759959-a4c1-4241-b625-72cd06c9abb4 WITH [{'path': '/allocation_uuid', 'op': 'replace', 'value': 'db335335-76e7-47f3-aac3-84feb6df580f'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5b5a574b-4d41-4a21-a37e-87b014fe857b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.52 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /allocation_uuid. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_replace_node_uuid_with_id [0.020297s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root [0.138837s] ... 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-631ecdbd-72e3-4966-ad09-7b8076b35412 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:01.173402+00:00", "updated_at": "2025-05-07T22:58:01.261441+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_utils.TestNodeIdent.test_replace_node_uuid_with_id_not_found [0.019005s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_true_field [0.049586s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cb50090b-81ef-4704-911c-01bb19ed839c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:01.275752+00:00", "updated_at": null, "automated_clean": true, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_fields [0.019250s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_conductor_forbidden [0.054803s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/53093f2f-c320-4ba6-a941-4ccd62723ead WITH [{'path': '/conductor', 'op': 'replace', 'value': 'why care'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e21f4cee-7136-46c9-8b9d-f007616cfd17 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /conductor. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_bios_hidden_in_lower_version [0.051758s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8aa418cb-817e-4041-999d-6254100a793f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.39 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:01.323057+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-aab9ef0b-8664-423f-befd-9bf0e21254b4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:01.323057+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root_non_existent [0.079547s] ... 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-19372c6d-4054-44ed-9766-b5f089a0907f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: address, extra, is_smartnic, local_link_connection, node_ident, node_uuid, physical_network, portgroup_uuid, pxe_enabled, name, description\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_deploy_step_forbidden [0.044967s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/062499c5-d577-4072-aa2c-e439eeb257b0 WITH [{'path': '/deploy_step', 'op': 'replace', 'value': 'deploy this'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-45e6c8b1-85ac-41b8-a90e-5f0c3f73444b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.44 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /deploy_step. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode [0.057988s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/86e25e43-9699-4fbd-992b-361dbf92a4e0 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-658757d3-3bf8-4e25-bc3d-fb2f03775397 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"uuid": "86e25e43-9699-4fbd-992b-361dbf92a4e0", "created_at": "2025-05-07T22:58:01.374235+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/86e25e43-9699-4fbd-992b-361dbf92a4e0", "rel": "self"}, {"href": "http://localhost/nodes/86e25e43-9699-4fbd-992b-361dbf92a4e0", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/86e25e43-9699-4fbd-992b-361dbf92a4e0/ports", "rel": "self"}, {"href": "http://localhost/nodes/86e25e43-9699-4fbd-992b-361dbf92a4e0/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/86e25e43-9699-4fbd-992b-361dbf92a4e0/states", "rel": "self"}, {"href": "http://localhost/nodes/86e25e43-9699-4fbd-992b-361dbf92a4e0/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/86e25e43-9699-4fbd-992b-361dbf92a4e0/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/86e25e43-9699-4fbd-992b-361dbf92a4e0/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/86e25e43-9699-4fbd-992b-361dbf92a4e0/volume", "rel": "self"}, {"href": "http://localhost/nodes/86e25e43-9699-4fbd-992b-361dbf92a4e0/volume", "rel": "bookmark"}]} GET /v1/nodes/536fecb8-43d7-4dcd-a957-0b2c72260256 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0272e76e-875d-44c6-80d4-943553126083 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"uuid": "536fecb8-43d7-4dcd-a957-0b2c72260256", "created_at": "2025-05-07T22:58:01.391936+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/536fecb8-43d7-4dcd-a957-0b2c72260256", "rel": "self"}, {"href": "http://localhost/nodes/536fecb8-43d7-4dcd-a957-0b2c72260256", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/536fecb8-43d7-4dcd-a957-0b2c72260256/ports", "rel": "self"}, {"href": "http://localhost/nodes/536fecb8-43d7-4dcd-a957-0b2c72260256/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/536fecb8-43d7-4dcd-a957-0b2c72260256/states", "rel": "self"}, {"href": "http://localhost/nodes/536fecb8-43d7-4dcd-a957-0b2c72260256/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/536fecb8-43d7-4dcd-a957-0b2c72260256/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/536fecb8-43d7-4dcd-a957-0b2c72260256/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/536fecb8-43d7-4dcd-a957-0b2c72260256/volume", "rel": "self"}, {"href": "http://localhost/nodes/536fecb8-43d7-4dcd-a957-0b2c72260256/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_duplicate_name [0.086189s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/05f56c25-6445-4cbc-a33a-734e1c1b6912 WITH [{'path': '/name', 'op': 'replace', 'value': 'this-is-my-node'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-2dc17bad-bcbb-4d0f-b936-d09e39eaa0ea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"this-is-my-node\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode_hidden_in_lower_version [0.052039s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-625881b5-ed28-433d-94e4-c8be5eec3c3a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.74 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:01.435081+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-a029a6fc-714c-4494-b056-49e83d052350 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:01.435081+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_empty_string [0.118588s] ... 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-74c9db11-5b56-4578-9089-21063d71666d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty value is required when setting physical_network\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_fault_forbidden [0.047538s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/3dc872f0-0e30-43a1-bd44-e8df818e4543 WITH [{'path': '/fault', 'op': 'replace', 'value': 'why care'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9693985c-baaf-4c07-b07c-ef52dba661b4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.42 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /fault. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode_null_field [0.041136s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d7a07fb4-ed7b-4465-afd1-a773476abe40 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:01.486123+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_links [0.233865s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid [0.036823s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?instance_uuid=2b2ee151-71ca-45f3-9226-948954fc9cf9 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-54556be9-b17b-485c-8f74-3f92e064b796 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"nodes": [{"uuid": "7022e168-c177-4136-b5d1-a430f028a5a6", "instance_uuid": "2b2ee151-71ca-45f3-9226-948954fc9cf9", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/7022e168-c177-4136-b5d1-a430f028a5a6", "rel": "self"}, {"href": "http://localhost/nodes/7022e168-c177-4136-b5d1-a430f028a5a6", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_no_args [0.018621s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_invalid_uuid [0.032012s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?instance_uuid=fake WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5176ded8-4144-4cdf-81fe-92e515b31c26 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for instance_uuid: fake\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_no_base_attributes [0.021594s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_remove_ok [0.091442s] ... 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-9d7095c3-d4e3-481c-ace7-376eecc6a3ef X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:01.518466+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_utils.TestPortgroupIdent.test_get_rpc_portgroup_invalid_name [0.019317s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_wrong_uuid [0.036879s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?instance_uuid=b590a9b7-5017-4410-b128-bf6213acf0c1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f603f1e7-fba2-43c8-8a20-88ad597dc703 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": []} {2} ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_name [0.018869s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_uuid [0.020012s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned [0.019059s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned_in_release_mappings [0.019822s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_replace_ok [0.093019s] ... 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-3e402028-dd10-4c97-b6bb-509d8f5e7b65 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:01.611244+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_versions.TestMaxVersionString.test_max_version_pinned [0.020513s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_duplicates [0.019077s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_max_ver_str [0.021601s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_min_ver_str [0.018836s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update [0.096882s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/60ff4dd3-2fb9-4ebb-8679-1d1472a0322b WITH [{'path': '/description', 'value': 'foo', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-41f1ae9b-64f4-43c7-bcaa-e482c61e99fa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "60ff4dd3-2fb9-4ebb-8679-1d1472a0322b", "created_at": "2025-05-07T22:58:01.721669+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/60ff4dd3-2fb9-4ebb-8679-1d1472a0322b", "rel": "self"}, {"href": "http://localhost/nodes/60ff4dd3-2fb9-4ebb-8679-1d1472a0322b", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/60ff4dd3-2fb9-4ebb-8679-1d1472a0322b/ports", "rel": "self"}, {"href": "http://localhost/nodes/60ff4dd3-2fb9-4ebb-8679-1d1472a0322b/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/60ff4dd3-2fb9-4ebb-8679-1d1472a0322b/states", "rel": "self"}, {"href": "http://localhost/nodes/60ff4dd3-2fb9-4ebb-8679-1d1472a0322b/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/60ff4dd3-2fb9-4ebb-8679-1d1472a0322b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/60ff4dd3-2fb9-4ebb-8679-1d1472a0322b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/60ff4dd3-2fb9-4ebb-8679-1d1472a0322b/volume", "rel": "self"}, {"href": "http://localhost/nodes/60ff4dd3-2fb9-4ebb-8679-1d1472a0322b/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_name_value_match [0.019038s] ... ok {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid [0.047409s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 204 No Content Openstack-Request-Id: req-d11412d5-0152-46a0-82c9-00a1100c779f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_group_hidden_in_lower_version [0.246031s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-48f07f89-2bf9-4040-954d-50b0007e5ced X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:01.837310+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-ecc24290-376e-45da-825f-a8e00f8b4d50 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:01.837310+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid_invalid_api_version [0.038839s] ... 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\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_extra [0.092988s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/127d9ff6-a32b-4119-87f6-1c482e95f372 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8a5212f9-e519-4e5a-8a7b-9a52c6511e77 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "127d9ff6-a32b-4119-87f6-1c482e95f372", "created_at": "2025-05-07T22:58:01.814113+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/127d9ff6-a32b-4119-87f6-1c482e95f372", "rel": "self"}, {"href": "http://localhost/nodes/127d9ff6-a32b-4119-87f6-1c482e95f372", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/127d9ff6-a32b-4119-87f6-1c482e95f372/ports", "rel": "self"}, {"href": "http://localhost/nodes/127d9ff6-a32b-4119-87f6-1c482e95f372/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/127d9ff6-a32b-4119-87f6-1c482e95f372/states", "rel": "self"}, {"href": "http://localhost/nodes/127d9ff6-a32b-4119-87f6-1c482e95f372/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/127d9ff6-a32b-4119-87f6-1c482e95f372/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/127d9ff6-a32b-4119-87f6-1c482e95f372/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/127d9ff6-a32b-4119-87f6-1c482e95f372/volume", "rel": "self"}, {"href": "http://localhost/nodes/127d9ff6-a32b-4119-87f6-1c482e95f372/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_hidden_in_lower_version [0.049561s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-14bf95dd-b8a5-42bc-8dbf-864ad18f4ef3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:01.884686+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-fa8d5ff7-643f-44f7-8df8-e766fb07285d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:01.884686+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_inter face": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_invalid_power_state [0.048266s] ... 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-982c1fdc-edc2-48f1-8650-969c0ab9a2a6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"volume connector deletion\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"power on\\\".\", \"debuginfo\": null}"} Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_extra_and_instance_info [0.086156s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/c5f4a712-f3f6-4928-8367-4d668322d9b4 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-f576eb2d-4ee9-4475-9697-4420425b8563 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "c5f4a712-f3f6-4928-8367-4d668322d9b4", "created_at": "2025-05-07T22:58:01.906755+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/c5f4a712-f3f6-4928-8367-4d668322d9b4", "rel": "self"}, {"href": "http://localhost/nodes/c5f4a712-f3f6-4928-8367-4d668322d9b4", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c5f4a712-f3f6-4928-8367-4d668322d9b4/ports", "rel": "self"}, {"href": "http://localhost/nodes/c5f4a712-f3f6-4928-8367-4d668322d9b4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c5f4a712-f3f6-4928-8367-4d668322d9b4/states", "rel": "self"}, {"href": "http://localhost/nodes/c5f4a712-f3f6-4928-8367-4d668322d9b4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c5f4a712-f3f6-4928-8367-4d668322d9b4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c5f4a712-f3f6-4928-8367-4d668322d9b4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c5f4a712-f3f6-4928-8367-4d668322d9b4/volume", "rel": "self"}, {"href": "http://localhost/nodes/c5f4a712-f3f6-4928-8367-4d668322d9b4/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_non_text [0.473448s] ... 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-549de4b3-844b-448e-b725-264e577f66f0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 1234 is not of type 'string', 'null'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_deploy_step_hidden_in_lower_version [0.049623s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-286b7862-0d7b-4826-a7af-0487317e5e0f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.43 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:01.938632+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-1748c7a2-f7e7-472b-bff9-4bb3e2982003 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.44 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:01.938632+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_node_locked [0.047473s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-d4c35374-814f-4763-9a00-d3609d35c4a1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_description_null_field [0.040111s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-34bb8628-5fb6-47bb-9a42-bd3ad0d75b8e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.51 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:01.986017+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links [0.045480s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2da3c96f-e11f-491e-af5b-4d6e0c807f40 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "e0f8dbb2-0869-455a-a193-20f768005127", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/e0f8dbb2-0869-455a-a193-20f768005127", "rel": "self"}, {"href": "http://localhost/volume/connectors/e0f8dbb2-0869-455a-a193-20f768005127", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "87420f0b-f840-44d0-b121-a6a63bc41879", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/87420f0b-f840-44d0-b121-a6a63bc41879", "rel": "self"}, {"href": "http://localhost/volume/connectors/87420f0b-f840-44d0-b121-a6a63bc41879", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "f592404b-4930-4b6c-be16-8db02da17bee", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/f592404b-4930-4b6c-be16-8db02da17bee", "rel": "self"}, {"href": "http://localhost/volume/connectors/f592404b-4930-4b6c-be16-8db02da17bee", "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=f592404b-4930-4b6c-be16-8db02da17bee"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_and_extra [0.087327s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/fcdd280e-9b89-460c-9042-9752b16346b2 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-9774e959-2a26-4b55-a793-7474f85149fd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "fcdd280e-9b89-460c-9042-9752b16346b2", "created_at": "2025-05-07T22:58:01.993783+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/fcdd280e-9b89-460c-9042-9752b16346b2", "rel": "self"}, {"href": "http://localhost/nodes/fcdd280e-9b89-460c-9042-9752b16346b2", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fcdd280e-9b89-460c-9042-9752b16346b2/ports", "rel": "self"}, {"href": "http://localhost/nodes/fcdd280e-9b89-460c-9042-9752b16346b2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fcdd280e-9b89-460c-9042-9752b16346b2/states", "rel": "self"}, {"href": "http://localhost/nodes/fcdd280e-9b89-460c-9042-9752b16346b2/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fcdd280e-9b89-460c-9042-9752b16346b2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fcdd280e-9b89-460c-9042-9752b16346b2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fcdd280e-9b89-460c-9042-9752b16346b2/volume", "rel": "self"}, {"href": "http://localhost/nodes/fcdd280e-9b89-460c-9042-9752b16346b2/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_disable_power_off_false_field [0.045731s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-874cb26e-bebb-4080-92ed-95122e73fddc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.95 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:02.031911+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_custom_fields [0.049859s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4d2aec4f-2bb7-4f9d-90e3-01393ebf8332 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "66bcb926-d9af-48c2-8442-8873e7df5104", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/66bcb926-d9af-48c2-8442-8873e7df5104", "rel": "self"}, {"href": "http://localhost/volume/connectors/66bcb926-d9af-48c2-8442-8873e7df5104", "rel": "bookmark"}]}, {"uuid": "e60054e2-649f-4721-9e58-5923e504c54b", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/e60054e2-649f-4721-9e58-5923e504c54b", "rel": "self"}, {"href": "http://localhost/volume/connectors/e60054e2-649f-4721-9e58-5923e504c54b", "rel": "bookmark"}]}, {"uuid": "dc4acf22-d102-4731-9ed7-e58f90c7cdd7", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/dc4acf22-d102-4731-9ed7-e58f90c7cdd7", "rel": "self"}, {"href": "http://localhost/volume/connectors/dc4acf22-d102-4731-9ed7-e58f90c7cdd7", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=dc4acf22-d102-4731-9ed7-e58f90c7cdd7"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_too_long [0.110218s] ... 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-c2ead1cd-50a2-42a5-b609-6a499a2ca71a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp' is too long\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_disable_power_off_hidden_in_lower_version [0.045040s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-91685388-62aa-4695-ba13-e7aaac6269da X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.94 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:02.074230+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-0a019146-3da8-4677-a9e1-82ab0da40c7c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.95 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:02.074230+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_default_limit [0.050027s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-99327d00-7b5c-44af-a165-f0c15093d19a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "e33c3750-bf89-4f8e-8c37-9404e770cf81", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/e33c3750-bf89-4f8e-8c37-9404e770cf81", "rel": "self"}, {"href": "http://localhost/volume/connectors/e33c3750-bf89-4f8e-8c37-9404e770cf81", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "53a6dd96-7986-4b81-b403-e63f342c33fc", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/53a6dd96-7986-4b81-b403-e63f342c33fc", "rel": "self"}, {"href": "http://localhost/volume/connectors/53a6dd96-7986-4b81-b403-e63f342c33fc", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "841b990e-03a1-48e3-878b-a253610089c5", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/841b990e-03a1-48e3-878b-a253610089c5", "rel": "self"}, {"href": "http://localhost/volume/connectors/841b990e-03a1-48e3-878b-a253610089c5", "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=841b990e-03a1-48e3-878b-a253610089c5"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_and_instance_info [0.090778s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/4510de84-f817-4c2c-a473-c6f131d53878 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-05ea1205-c0df-44d4-8fd7-451e03fa1c76 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "4510de84-f817-4c2c-a473-c6f131d53878", "created_at": "2025-05-07T22:58:02.082977+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/4510de84-f817-4c2c-a473-c6f131d53878", "rel": "self"}, {"href": "http://localhost/nodes/4510de84-f817-4c2c-a473-c6f131d53878", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/4510de84-f817-4c2c-a473-c6f131d53878/ports", "rel": "self"}, {"href": "http://localhost/nodes/4510de84-f817-4c2c-a473-c6f131d53878/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4510de84-f817-4c2c-a473-c6f131d53878/states", "rel": "self"}, {"href": "http://localhost/nodes/4510de84-f817-4c2c-a473-c6f131d53878/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4510de84-f817-4c2c-a473-c6f131d53878/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4510de84-f817-4c2c-a473-c6f131d53878/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4510de84-f817-4c2c-a473-c6f131d53878/volume", "rel": "self"}, {"href": "http://localhost/nodes/4510de84-f817-4c2c-a473-c6f131d53878/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_disable_power_off_null_field [0.045866s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-48f31cba-7af6-42e7-a69b-2f7f9bc91912 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.95 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:02.127029+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_detail [0.049888s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?detail=True&limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9189727b-aab5-4a25-ac03-6ac54d5bab3e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "f8dd682e-1695-4d61-88de-b99cf1cbb943", "created_at": "2025-05-07T22:58:02.137549+00:00", "updated_at": null, "connector_id": "test-connector_id-0", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/f8dd682e-1695-4d61-88de-b99cf1cbb943", "rel": "self"}, {"href": "http://localhost/volume/connectors/f8dd682e-1695-4d61-88de-b99cf1cbb943", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "199a3003-1c50-4757-ae33-4abb78d9c667", "created_at": "2025-05-07T22:58:02.138522+00:00", "updated_at": null, "connector_id": "test-connector_id-1", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/199a3003-1c50-4757-ae33-4abb78d9c667", "rel": "self"}, {"href": "http://localhost/volume/connectors/199a3003-1c50-4757-ae33-4abb78d9c667", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "5837fb0a-f24a-4089-95d5-c6b9d522ff06", "created_at": "2025-05-07T22:58:02.139455+00:00", "updated_at": null, "connector_id": "test-connector_id-2", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/5837fb0a-f24a-4089-95d5-c6b9d522ff06", "rel": "self"}, {"href": "http://localhost/volume/connectors/5837fb0a-f24a-4089-95d5-c6b9d522ff06", "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=5837fb0a-f24a-4089-95d5-c6b9d522ff06"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_portgroups_subresource_patch [0.083610s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/c4fa5228-7322-4ba0-9813-a6e234dd1524 WITH [{'path': '/address', 'value': '00:00:00:00:00:00', 'op': 'replace'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2bd12c0e-14a5-4767-a377-956694fd7483 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_disable_power_off_true_field [0.040058s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c9c41192-52b3-46c2-a238-6ca48ef35d0a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.95 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:02.170847+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": true, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail [0.037542s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-735315b6-5670-4b0e-b278-9a975885b13d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:02.182650+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_extra_instance_info [0.086677s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/59add268-7080-4766-ac28-bd5d1c5aa291 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-ccf95e24-b4ea-480c-b92f-cfbd7610b1cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "59add268-7080-4766-ac28-bd5d1c5aa291", "created_at": "2025-05-07T22:58:02.171251+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/59add268-7080-4766-ac28-bd5d1c5aa291", "rel": "self"}, {"href": "http://localhost/nodes/59add268-7080-4766-ac28-bd5d1c5aa291", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/59add268-7080-4766-ac28-bd5d1c5aa291/ports", "rel": "self"}, {"href": "http://localhost/nodes/59add268-7080-4766-ac28-bd5d1c5aa291/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/59add268-7080-4766-ac28-bd5d1c5aa291/states", "rel": "self"}, {"href": "http://localhost/nodes/59add268-7080-4766-ac28-bd5d1c5aa291/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/59add268-7080-4766-ac28-bd5d1c5aa291/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/59add268-7080-4766-ac28-bd5d1c5aa291/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/59add268-7080-4766-ac28-bd5d1c5aa291/volume", "rel": "self"}, {"href": "http://localhost/nodes/59add268-7080-4766-ac28-bd5d1c5aa291/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_fault_hidden_in_lower_version [0.050537s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-684ea67b-84df-4e32-b659-1433e75ae3f8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.41 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:02.211472+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-1862fe95-d3ab-4cc8-99f8-d0f9c01df0bf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.42 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:02.211472+00:00", "updated_at": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "lin ks": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_against_single [0.043923s] ... 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-e06c1c19-9b4c-44ae-a8c5-41266e723c58 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_and_fields [0.032669s] ... 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-9b1306fc-0fce-4926-a984-b27324c18ec8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_inspect_wait_state_between_api_versions [0.046240s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-688c418f-b420-4073-9a9e-5f59480f6b99 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:02.262581+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-efb9e346-a239-4b3a-a24d-0bdb26bf8a30 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.39 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:02.262581+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.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_instance_info [0.089903s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/b4894233-d0f9-4fd9-aba6-6cfe52962385 WITH [{'path': '/instance_info/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e04e8a75-fd84-4bb8-abb1-799e00e9cc85 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "b4894233-d0f9-4fd9-aba6-6cfe52962385", "created_at": "2025-05-07T22:58:02.259809+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/b4894233-d0f9-4fd9-aba6-6cfe52962385", "rel": "self"}, {"href": "http://localhost/nodes/b4894233-d0f9-4fd9-aba6-6cfe52962385", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b4894233-d0f9-4fd9-aba6-6cfe52962385/ports", "rel": "self"}, {"href": "http://localhost/nodes/b4894233-d0f9-4fd9-aba6-6cfe52962385/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b4894233-d0f9-4fd9-aba6-6cfe52962385/states", "rel": "self"}, {"href": "http://localhost/nodes/b4894233-d0f9-4fd9-aba6-6cfe52962385/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b4894233-d0f9-4fd9-aba6-6cfe52962385/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b4894233-d0f9-4fd9-aba6-6cfe52962385/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b4894233-d0f9-4fd9-aba6-6cfe52962385/volume", "rel": "self"}, {"href": "http://localhost/nodes/b4894233-d0f9-4fd9-aba6-6cfe52962385/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_by_node_name_ok [0.040771s] ... 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-d7c6ab7d-481f-4fdc-8ef9-03ebcbb21acd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:02.301990+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_node.TestListNodes.test_node_interface_fields_hidden_in_lower_version [0.037270s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-63ece3c7-c8b7-4a8f-abbc-5edfbd691740 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:02.309127+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_network_type [0.151000s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/c10d818e-34cd-4024-a980-761303145175 WITH [{'path': '/local_link_connection/network_type', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9abed1d3-c4c0-4510-9dcc-11ddbee6aeea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.64 {"uuid": "c10d818e-34cd-4024-a980-761303145175", "created_at": "2025-05-07T22:58:02.238881+00:00", "updated_at": "2025-05-07T22:58:02.317258+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/c10d818e-34cd-4024-a980-761303145175", "rel": "self"}, {"href": "http://localhost/ports/c10d818e-34cd-4024-a980-761303145175", "rel": "bookmark"}], "portgroup_uuid": null} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_false [0.045069s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c11e59f4-32c3-4989-b1fa-441862c925a0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_hidden_in_lower_version [0.049293s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b7c322ba-3cb2-48f0-a804-0e7aeaf0764c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.64 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:02.348847+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-dff69e2e-7e85-4807-8aff-8623487d0d5a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:02.348847+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_invalid_api_version [0.028518s] ... 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.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_none [0.091495s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/63eb520b-994c-4da3-b1ff-84b1ff234d61 WITH [] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c24d76f1-f807-493d-a919-11edde812d91 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "63eb520b-994c-4da3-b1ff-84b1ff234d61", "created_at": "2025-05-07T22:58:02.355196+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/63eb520b-994c-4da3-b1ff-84b1ff234d61", "rel": "self"}, {"href": "http://localhost/nodes/63eb520b-994c-4da3-b1ff-84b1ff234d61", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/63eb520b-994c-4da3-b1ff-84b1ff234d61/ports", "rel": "self"}, {"href": "http://localhost/nodes/63eb520b-994c-4da3-b1ff-84b1ff234d61/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/63eb520b-994c-4da3-b1ff-84b1ff234d61/states", "rel": "self"}, {"href": "http://localhost/nodes/63eb520b-994c-4da3-b1ff-84b1ff234d61/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/63eb520b-994c-4da3-b1ff-84b1ff234d61/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/63eb520b-994c-4da3-b1ff-84b1ff234d61/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/63eb520b-994c-4da3-b1ff-84b1ff234d61/volume", "rel": "self"}, {"href": "http://localhost/nodes/63eb520b-994c-4da3-b1ff-84b1ff234d61/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_network_type_old_api [0.075638s] ... 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-9fc4335b-9480-4437-a266-10ec81a662de X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.63 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_null_field [0.040195s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-64d7f55b-eead-437c-9c49-0bc08bcc2d52 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:02.402664+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_sepecified_by_path [0.033499s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/detail WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-84dbd742-049c-4626-b1e7-705ddca3d406 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for connector_uuid: detail\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_portgroups_subresource [0.052328s] ... 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-ff11e21b-6314-4b05-995f-c533df5cbd08 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_present [0.041096s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-55875594-cb75-418c-a195-41e1b9c84b70 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:02.444200+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_empty [0.035450s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1dff51f1-8c4e-4035-9a52-93f15dfea6a2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": []} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_old_api [0.082580s] ... 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-d9838205-cc66-4b38-b5d7-fee3134a59bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource [0.044211s] ... 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-c130b0f5-d28e-4675-9c22-a1529cf790ec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_network_data [0.045271s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/454b0353-1032-4d3d-8103-4f24b1fbbad8 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-eda90f22-7b5a-46aa-99f1-fcbeb6e05deb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.66 {"uuid": "454b0353-1032-4d3d-8103-4f24b1fbbad8", "created_at": "2025-05-07T22:58:02.488571+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/454b0353-1032-4d3d-8103-4f24b1fbbad8", "rel": "self"}, {"href": "http://localhost/nodes/454b0353-1032-4d3d-8103-4f24b1fbbad8", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/454b0353-1032-4d3d-8103-4f24b1fbbad8/ports", "rel": "self"}, {"href": "http://localhost/nodes/454b0353-1032-4d3d-8103-4f24b1fbbad8/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/454b0353-1032-4d3d-8103-4f24b1fbbad8/states", "rel": "self"}, {"href ": "http://localhost/nodes/454b0353-1032-4d3d-8103-4f24b1fbbad8/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/454b0353-1032-4d3d-8103-4f24b1fbbad8/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/454b0353-1032-4d3d-8103-4f24b1fbbad8/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/454b0353-1032-4d3d-8103-4f24b1fbbad8/volume", "rel": "self"}, {"href": "http://localhost/nodes/454b0353-1032-4d3d-8103-4f24b1fbbad8/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_all_by_node_name_ok [0.052998s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fefa4dac-4d4d-4fc6-be30-31a7b552fc4c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "ac384011-2253-4efa-8bd8-c890a1232d16", "connector_id": "test-value-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/ac384011-2253-4efa-8bd8-c890a1232d16", "rel": "self"}, {"href": "http://localhost/volume/connectors/ac384011-2253-4efa-8bd8-c890a1232d16", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "a4a851f3-7f3e-4234-af30-d80b521e80d3", "connector_id": "test-value-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/a4a851f3-7f3e-4234-af30-d80b521e80d3", "rel": "self"}, {"href": "http://localhost/volume/connectors/a4a851f3-7f3e-4234-af30-d80b521e80d3", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "007b260a-45c2-4952-9b6f-b2d16989869f", "connector_id": "test-value-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/007b260a-45c2-4952-9b6f-b2d16989869f", "rel": "self"}, {"href": "http://localhost/volume/connectors/007b260a-45c2-4952-9b6f-b2d16989869f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource_no_port_id [0.042213s] ... 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-5e72184a-2b27-4206-b099-3994c54bff5a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: port_ident\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_network_data_hidden_in_lower_version [0.053048s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5c993a14-acb7-4676-97a5-11b5089f86f8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:02.532124+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-0db9a21b-e4af-4ef0-ae5f-1e52a004fdba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.66 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:02.532124+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_custom_fields [0.044304s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-79b759a8-6761-4ee0-90f3-348adb0707d6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "4ae66856-5fac-4851-9285-f40556c1d151", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/4ae66856-5fac-4851-9285-f40556c1d151", "rel": "self"}, {"href": "http://localhost/volume/connectors/4ae66856-5fac-4851-9285-f40556c1d151", "rel": "bookmark"}]}, {"uuid": "14d89961-11d0-45f8-bd44-ab89b23d60c1", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/14d89961-11d0-45f8-bd44-ab89b23d60c1", "rel": "self"}, {"href": "http://localhost/volume/connectors/14d89961-11d0-45f8-bd44-ab89b23d60c1", "rel": "bookmark"}]}, {"uuid": "efc3d7af-b78c-47ca-adac-dac0078ad4b9", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/efc3d7af-b78c-47ca-adac-dac0078ad4b9", "rel": "self"}, {"href": "http://localhost/volume/connectors/efc3d7af-b78c-47ca-adac-dac0078ad4b9", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_pagination_no_uuid [0.047566s] ... 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-ea5f35ba-8942-4567-ac29-25adadcac512 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"connector_id": "test-connector_id-0", "links": [{"href": "http://localhost/v1/volume/connectors/581d0d7d-0a8b-429a-b94a-785efeaf81da", "rel": "self"}, {"href": "http://localhost/volume/connectors/581d0d7d-0a8b-429a-b94a-785efeaf81da", "rel": "bookmark"}]}, {"connector_id": "test-connector_id-1", "links": [{"href": "http://localhost/v1/volume/connectors/9362fde1-211a-4cdf-ad36-c8c0d1ac785e", "rel": "self"}, {"href": "http://localhost/volume/connectors/9362fde1-211a-4cdf-ad36-c8c0d1ac785e", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=connector_id&limit=2&marker=9362fde1-211a-4cdf-ad36-c8c0d1ac785e"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_hidden_in_lower_version [0.048183s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-59f31f8a-5cf3-4d13-94ac-369895f26758 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.49 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:02.582741+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-9441bfef-eed7-411c-aa4c-2d4f89d97595 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:02.582741+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.TestPatch.test_remove_mandatory_field [0.110371s] ... 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-cee7562a-732f-40ae-a616-59a2d46bf34d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'address' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_drive_console_enabled [0.087265s] ... 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-160aa629-d388-4ddd-af58-caedac9cbf4a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 can not update the driver while the console is enabled. Please stop the console first.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_api_version [0.032684s] ... 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_node.TestListNodes.test_node_owner_null_field [0.041290s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0d4be306-ec46-4fed-b357-b500c9ffcde2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:02.635657+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_fields [0.039786s] ... 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-d29b6844-a2df-42b8-908c-8bc8bd0786eb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_both_invalid [0.050361s] ... 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-031b0d51-5fef-4154-ae55-e48ad62749ed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123: Cannot change name to invalid name 'Windows ME'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_present [0.044591s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2cc13d82-0280-4eb8-b0b2-a6a3560657c4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:02.675116+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one [0.041169s] ... 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-2f5807c0-b43a-49ff-8629-0cc98f7856ff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:02.709789+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_second_invalid [0.045363s] ... 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-abdc70a6-26da-45db-8faf-1e922c84faeb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123: Cannot change name to invalid name 'Guido Van Error'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_custom_fields [0.041751s] ... 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-e2adc0a2-743d-4642-8f71-4e70d440bd14 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource [0.048869s] ... 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-dfec2455-766b-4c1f-a2b3-1e25b533d6dc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_invalid_api_version [0.029794s] ... 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_node.TestListNodes.test_node_protected [0.096851s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/b9f71f8c-2441-41c9-a221-e16350d8d7db WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6a6038fb-2cf3-4aea-a4d5-47ce7500195b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "b9f71f8c-2441-41c9-a221-e16350d8d7db", "created_at": "2025-05-07T22:58:02.748622+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/b9f71f8c-2441-41c9-a221-e16350d8d7db", "rel": "self"}, {"href": "http://localhost/nodes/b9f71f8c-2441-41c9-a221-e16350d8d7db", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b9f71f8c-2441-41c9-a221-e16350d8d7db/ports", "rel": "self"}, {"href": "http://localhost/nodes/b9f71f8c-2441-41c9-a221-e16350d8d7db/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b9f71f8c-2441-41c9-a221-e16350d8d7db/states", "rel": "self"}, {"href": "http://localhost/nodes/b9f71f8c-2441-41c9-a221-e16350d8d7db/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b9f71f8c-2441-41c9-a221-e16350d8d7db/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b9f71f8c-2441-41c9-a221-e16350d8d7db/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b9f71f8c-2441-41c9-a221-e16350d8d7db/volume", "rel": "self"}, {"href": "http://localhost/nodes/b9f71f8c-2441-41c9-a221-e16350d8d7db/volume", "rel": "bookmark"}]} GET /v1/nodes/a4004ef5-c632-4921-b920-d9144395d61a WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b4bf05a8-2952-432f-8d6b-74c57db83409 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "a4004ef5-c632-4921-b920-d9144395d61a", "created_at": "2025-05-07T22:58:02.765227+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/a4004ef5-c632-4921-b920-d9144395d61a", "rel": "self"}, {"href": "http://localhost/nodes/a4004ef5-c632-4921-b920-d9144395d61a", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a4004ef5-c632-4921-b920-d9144395d61a/ports", "rel": "self"}, {"href": "http://localhost/nodes/a4004ef5-c632-4921-b920-d9144395d61a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a4004ef5-c632-4921-b920-d9144395d61a/states", "rel": "self"}, {"href": "http://localhost/nodes/a4004ef5-c632-4921-b920-d9144395d61a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a4004ef5-c632-4921-b920-d9144395d61a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a4004ef5-c632-4921-b920-d9144395d61a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a4004ef5-c632-4921-b920-d9144395d61a/volume", "rel": "self"}, {"href": "http://localhost/nodes/a4004ef5-c632-4921-b920-d9144395d61a/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource_no_connector_id [0.043133s] ... 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-9ffdc74c-adce-4ef0-adbf-a1f23c259815 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: connector_uuid\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_multi [0.223421s] ... 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-fd2e00bb-6543-4e13-989b-54b0139413d5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:02.669315+00:00", "updated_at": "2025-05-07T22:58:02.757094+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-d7cbd010-0d41-4fe4-8212-6c776265faa1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:02.669315+00:00", "updated_at": "2025-05-07T22:58:02.830842+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_links [0.056117s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/6940273f-dff1-483d-80fe-807329f75a46 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bd53d1df-9681-4485-9000-fe005a221247 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6940273f-dff1-483d-80fe-807329f75a46", "created_at": "2025-05-07T22:58:02.819416+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/6940273f-dff1-483d-80fe-807329f75a46", "rel": "self"}, {"href": "http://localhost/volume/connectors/6940273f-dff1-483d-80fe-807329f75a46", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/volume/connectors/6940273f-dff1-483d-80fe-807329f75a46 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a1599e16-0253-485c-b3bc-788bdd2719b9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6940273f-dff1-483d-80fe-807329f75a46", "created_at": "2025-05-07T22:58:02.819416+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/6940273f-dff1-483d-80fe-807329f75a46", "rel": "self"}, {"href": "http://localhost/volume/connectors/6940273f-dff1-483d-80fe-807329f75a46", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /volume/connectors/6940273f-dff1-483d-80fe-807329f75a46 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ea12b871-371a-432b-a600-515bdd567f24 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6940273f-dff1-483d-80fe-807329f75a46", "created_at": "2025-05-07T22:58:02.819416+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/6940273f-dff1-483d-80fe-807329f75a46", "rel": "self"}, {"href": "http://localhost/volume/connectors/6940273f-dff1-483d-80fe-807329f75a46", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_targets_subresource [0.050979s] ... 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-368ced4c-bb8b-4a9b-b4bf-08e25325ecd3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_hidden_in_lower_version [0.091416s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-939ee10a-4e1f-438d-8b4d-1db90b40f0c9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:02.844998+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-d5334c1d-e5c3-43b5-8371-297f97ed3086 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:02.844998+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_many [0.053418s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d988024f-ab5d-4b84-a1c4-1d56dc8eb13a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "f779d888-292d-48ff-9ee9-8ca3237a7b96", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/f779d888-292d-48ff-9ee9-8ca3237a7b96", "rel": "self"}, {"href": "http://localhost/volume/connectors/f779d888-292d-48ff-9ee9-8ca3237a7b96", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "34a28976-6a1e-40ac-aaf2-0ada8694dc8a", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/34a28976-6a1e-40ac-aaf2-0ada8694dc8a", "rel": "self"}, {"href": "http://localhost/volume/connectors/34a28976-6a1e-40ac-aaf2-0ada8694dc8a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "8e10ec69-e5e7-493a-afa8-6dcfa717a5cb", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/8e10ec69-e5e7-493a-afa8-6dcfa717a5cb", "rel": "self"}, {"href": "http://localhost/volume/connectors/8e10ec69-e5e7-493a-afa8-6dcfa717a5cb", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "17250982-4da9-4348-98f3-c3d4fb6038ea", "connector_id": "test-connector_id-3", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/17250982-4da9-4348-98f3-c3d4fb6038ea", "rel": "self"}, {"href": "http://localhost/volume/connectors/17250982-4da9-4348-98f3-c3d4fb6038ea", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "c5ed0c9f-756d-4e56-b99d-f61b8cc981a4", "connector_id": "test-connector_id-4", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/c5ed0c9f-756d-4e56-b99d-f61b8cc981a4", "rel": "self"}, {"href": "http://localhost/volume/connectors/c5ed0c9f-756d-4e56-b99d-f61b8cc981a4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_node_id [0.081944s] ... 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-6f5a7e5a-9ed8-40bf-bc9f-75955e23884d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: address, extra, is_smartnic, local_link_connection, node_ident, node_uuid, physical_network, portgroup_uuid, pxe_enabled, name, description\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_id [0.045634s] ... 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-1ffd10de-d6f8-4812-9ab6-e87c089928d8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /chassis_id. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one [0.038218s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-82de4a0a-f278-4853-a1a6-4826ea25266e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one_invalid_api_version [0.038327s] ... 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_node.TestListNodes.test_node_protected_reason_hidden_in_lower_version [0.096072s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9ec5a726-ac31-4cc1-b503-179ca85d40b8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:02.946978+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-e492195c-6feb-403d-aa1b-75e1bb65cb83 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:02.946978+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reserv ation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid [0.087634s] ... 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-91c606ad-2726-4b2c-bef9-001d831cddac X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:02.942249+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_non_existent_property_fail [0.098938s] ... 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-6657b31c-0f87-4c46-8dda-ca7af19729d1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove a non-existent object 'non-existent'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key [0.046126s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e8168d45-be60-4d37-ad5c-c04caaf80fca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "23ee8c8d-b4ab-4f4c-9cb6-b904ba78bec0", "connector_id": "test-connector_id-2", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/23ee8c8d-b4ab-4f4c-9cb6-b904ba78bec0", "rel": "self"}, {"href": "http://localhost/volume/connectors/23ee8c8d-b4ab-4f4c-9cb6-b904ba78bec0", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "8596a1f0-1457-43db-aa2c-f38eb1c40e33", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/8596a1f0-1457-43db-aa2c-f38eb1c40e33", "rel": "self"}, {"href": "http://localhost/volume/connectors/8596a1f0-1457-43db-aa2c-f38eb1c40e33", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "bc417eef-6c62-4c65-81a4-e752fd164c45", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/bc417eef-6c62-4c65-81a4-e752fd164c45", "rel": "self"}, {"href": "http://localhost/volume/connectors/bc417eef-6c62-4c65-81a4-e752fd164c45", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key_invalid [0.039769s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-254f91fd-0574-483c-b8a7-39c0017185e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/volume/connectors?sort_key=extra WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fbd6fdb1-9a8d-4135-9949-e07522504b30 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected_with_reason [0.083507s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b64b3f9e-bf6a-4e2e-847c-3e83e7809c4a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:03.049527+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid_invalid_api_version [0.085044s] ... 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-cbb9b0a9-ea51-42e8-a9c0-50d22728345d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_multi [0.048472s] ... 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-911f9b1b-2a31-4cab-ba0d-52e9f4e666f4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:03.095347+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_internal_field [0.050614s] ... 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-e913b4df-1be1-4591-ae03-9a9fa80f6e82 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /last_error. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_id [0.051153s] ... 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-57dd1d78-8d78-4958-a32e-039ecd0c6caf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network [0.160939s] ... 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-f0630ada-abe7-4473-abdf-90c81a5f696f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:03.074750+00:00", "updated_at": "2025-05-07T22:58:03.164868+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired [0.104186s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/bef2f515-13e7-40e1-98d3-40ae905024a2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7d7c99fc-e9e6-4ed8-8110-23448813e669 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "bef2f515-13e7-40e1-98d3-40ae905024a2", "created_at": "2025-05-07T22:58:03.136460+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/bef2f515-13e7-40e1-98d3-40ae905024a2", "rel": "self"}, {"href": "http://localhost/nodes/bef2f515-13e7-40e1-98d3-40ae905024a2", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/bef2f515-13e7-40e1-98d3-40ae905024a2/ports", "rel": "self"}, {"href": "http://localhost/nodes/bef2f515-13e7-40e1-98d3-40ae905024a2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/bef2f515-13e7-40e1-98d3-40ae905024a2/states", "rel": "self"}, {"href": "http://localhost/nodes/bef2f515-13e7-40e1-98d3-40ae905024a2/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/bef2f515-13e7-40e1-98d3-40ae905024a2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/bef2f515-13e7-40e1-98d3-40ae905024a2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/bef2f515-13e7-40e1-98d3-40ae905024a2/volume", "rel": "self"}, {"href": "http://localhost/nodes/bef2f515-13e7-40e1-98d3-40ae905024a2/volume", "rel": "bookmark"}]} GET /v1/nodes/8afd315f-3d5c-47fd-904f-10d6fbb8ab40 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cbcda3e0-4622-4349-a4f6-866d94b05d13 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "8afd315f-3d5c-47fd-904f-10d6fbb8ab40", "created_at": "2025-05-07T22:58:03.162936+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/8afd315f-3d5c-47fd-904f-10d6fbb8ab40", "rel": "self"}, {"href": "http://localhost/nodes/8afd315f-3d5c-47fd-904f-10d6fbb8ab40", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/8afd315f-3d5c-47fd-904f-10d6fbb8ab40/ports", "rel": "self"}, {"href": "http://localhost/nodes/8afd315f-3d5c-47fd-904f-10d6fbb8ab40/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8afd315f-3d5c-47fd-904f-10d6fbb8ab40/states", "rel": "self"}, {"href": "http://localhost/nodes/8afd315f-3d5c-47fd-904f-10d6fbb8ab40/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8afd315f-3d5c-47fd-904f-10d6fbb8ab40/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8afd315f-3d5c-47fd-904f-10d6fbb8ab40/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8afd315f-3d5c-47fd-904f-10d6fbb8ab40/volume", "rel": "self"}, {"href": "http://localhost/nodes/8afd315f-3d5c-47fd-904f-10d6fbb8ab40/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_mandatory_field [0.086071s] ... 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-cca0cbf6-1eeb-4a3f-a6cf-35c61469efd1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'driver' is a required property\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid [0.078365s] ... 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-13becc28-5bf6-4682-b8d5-427f2bda41bf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:03.213968+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_old_api_version [0.094984s] ... 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-a7787660-abd5-4f73-8731-007b65009df9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_non_existent_property_fail [0.050511s] ... 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-5096ce75-a3bb-4200-bf3e-bfa36fccd7bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove a non-existent object 'non-existent'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_hidden_in_lower_version [0.097367s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-95ae19de-1c46-4922-8ff0-b5e5d95175fe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:03.238905+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-6906eac9-709f-4669-b7f6-c0dd00c12484 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:03.238905+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid_invalid_type [0.043226s] ... 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-5ee423b4-8f1b-48ef-985a-b43336d9ae6b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root [0.055648s] ... 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-77019844-d7a2-482d-9a66-5e899bc95370 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:03.319457+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_port.TestPatch.test_remove_physical_network_upgrade [0.090808s] ... 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-8e148b94-1e7f-4bb6-840a-21e4647044c2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_ok [0.093813s] ... 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-3f15ee3b-2394-4abe-bca7-ec8d124446b0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:03.305946+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.TestListNodes.test_node_retired_reason_hidden_in_lower_version [0.091207s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cbb4aedb-73bc-4f8e-b358-ee5ae0f49ca8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:03.329751+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-8c08b9bb-7817-4ada-9502-2a3debff263d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:03.329751+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root_non_existent [0.050137s] ... 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-8c276354-55d0-40b4-a2a8-eaf62f392452 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_uuid [0.051201s] ... 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-2c30c2b6-9402-4492-8190-d671f6ff5fcc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_uuid [0.085452s] ... 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-98c1edae-b40d-474f-951f-36a8f16936de X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: address, extra, is_smartnic, local_link_connection, node_ident, node_uuid, physical_network, portgroup_uuid, pxe_enabled, name, description\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_mandatory_field [0.055504s] ... 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-b4571c64-cf76-47fc-a19a-99333aa2c1f3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /value. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_with_reason [0.075493s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-464cc0cc-4f74-451d-a31d-bc7a959b5b7f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:03.430030+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.api.controllers.v1.test_node.TestPatch.test_replace_chassis_id [0.048974s] ... 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-174be0e5-1a8c-4d8a-921c-d0d23b75448b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /chassis_id. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_uuid [0.086028s] ... 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-1d0087be-9c93-429d-b231-af433bc839dc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:03.501578+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.TestListNodes.test_node_secure_boot [0.099888s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/64c5ba4a-2a5e-487e-b796-c839d0b37504 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3a41316b-d785-4d2e-abb9-a31b5342fd1d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"uuid": "64c5ba4a-2a5e-487e-b796-c839d0b37504", "created_at": "2025-05-07T22:58:03.513969+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/64c5ba4a-2a5e-487e-b796-c839d0b37504", "rel": "self"}, {"href": "http://localhost/nodes/64c5ba4a-2a5e-487e-b796-c839d0b37504", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/64c5ba4a-2a5e-487e-b796-c839d0b37504/ports", "rel": "self"}, {"href": "http://localhost/nodes/64c5ba4a-2a5e-487e-b796-c839d0b37504/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/64c5ba4a-2a5e-487e-b796-c839d0b37504/states", "rel": "self"}, {"href": "http://localhost/nodes/64c5ba4a-2a5e-487e-b796-c839d0b37504/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/64c5ba4a-2a5e-487e-b796-c839d0b37504/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/64c5ba4a-2a5e-487e-b796-c839d0b37504/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/64c5ba4a-2a5e-487e-b796-c839d0b37504/volume", "rel": "self"}, {"href": "http://localhost/nodes/64c5ba4a-2a5e-487e-b796-c839d0b37504/volume", "rel": "bookmark"}]} GET /v1/nodes/f324d930-4c63-4472-833e-3a32d95f780f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0916b755-4e38-4f32-8b6a-f0a1d44955b7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"uuid": "f324d930-4c63-4472-833e-3a32d95f780f", "created_at": "2025-05-07T22:58:03.539458+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/f324d930-4c63-4472-833e-3a32d95f780f", "rel": "self"}, {"href": "http://localhost/nodes/f324d930-4c63-4472-833e-3a32d95f780f", "rel": "bookmark"}], "conductor": "fake.conductor", "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f324d930-4c63-4472-833e-3a32d95f780f/ports", "rel": "self"}, {"href": "http://localhost/nodes/f324d930-4c63-4472-833e-3a32d95f780f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f324d930-4c63-4472-833e-3a32d95f780f/states", "rel": "self"}, {"href": "http://localhost/nodes/f324d930-4c63-4472-833e-3a32d95f780f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f324d930-4c63-4472-833e-3a32d95f780f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f324d930-4c63-4472-833e-3a32d95f780f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f324d930-4c63-4472-833e-3a32d95f780f/volume", "rel": "self"}, {"href": "http://localhost/nodes/f324d930-4c63-4472-833e-3a32d95f780f/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_address_already_exist [0.138800s] ... 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-0fc44371-4b9a-46b7-a983-dfaac2d09fa2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address aa:aa:aa:aa:aa:aa already exists.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_consoled_enabled [0.046012s] ... 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-bf8e5459-adf6-4523-8bd3-522042531491 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /console_enabled. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_internal_field [0.049132s] ... 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-001f059f-b680-489d-b460-18ef28b44e7e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /power_state. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_secure_boot_hidden_in_lower_version [0.103276s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dcd146c0-b8a3-4556-8d5c-bdbbdd661cfb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.74 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:03.627379+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-ad552ef6-8746-4157-bc60-f424d51e1bb1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:03.627379+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_local_link_connection [0.149080s] ... 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-61c179c9-cb1b-4ec2-b3d2-f0e9f4c99a25 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.19 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:03.649041+00:00", "updated_at": "2025-05-07T22:58:03.726261+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_multi [0.289291s] ... 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-5cd9496e-c2c8-449b-86bf-f1cd72775bde X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:03.700397+00:00", "updated_at": "2025-05-07T22:58:03.703238+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-1560959b-5eb7-4598-932a-9ccfd21d6fba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:03.700397+00:00", "updated_at": "2025-05-07T22:58:03.703238+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"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states [0.065411s] ... 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-a9fc1443-97d7-440b-9f8d-33148a58731e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"console_enabled": false, "last_error": "fake-error", "power_state": "fake-state", "provision_state": "fake-state", "target_power_state": "fake-state", "target_provision_state": "fake-state", "provision_updated_at": "2000-01-01T00:00:00+00:00"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance [0.098293s] ... 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-70f055a0-67a0-4ff8-8cf8-b5018973cdb4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:03.686387+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_volume_connector.TestPatch.test_remove_node_id [0.038837s] ... 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-519f1778-fd58-4511-942c-db743f778bc8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_non_existent_property_fail [0.041187s] ... 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-ed58a4a5-40fa-437e-bd06-a1158038b900 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove a non-existent object 'non-existent'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_boot_mode [0.095384s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/4580f8b9-3e2a-484b-b2b1-e1e4af1cc362/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9c50ad58-d546-4109-a2d7-fd605a7336fd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": "bios", "secure_boot": null} GET /v1/nodes/2fa948df-1158-44b4-a988-54dfce2d5245/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-19132fd3-80ec-420d-8ef0-a5fbc25bfe32 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": "uefi", "secure_boot": null} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance_by_name [0.092366s] ... 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-c0eebd2d-bfd4-450a-a587-211604d9ab2e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:03.782480+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_volume_connector.TestPatch.test_remove_uuid [0.039917s] ... 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-2709afd0-4f65-4855-b023-c76a062ce814 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_multi [0.145946s] ... 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-3ad4d043-d2c5-4fce-88ee-d90e32530c66 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:03.795021+00:00", "updated_at": "2025-05-07T22:58:03.881847+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"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_connector_id_already_exist [0.044647s] ... 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-80e01545-c2a7-4b94-b766-8d9ba6f75495 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume connector with type None and connector ID test-connector-id-123 already exists.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_boot_mode_hidden_in_lower_version [0.079780s] ... 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-1dcba0d5-7ba6-4fcc-87c9-a6b5d87b05d4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.74 {"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4f247d5c-1cb4-47bc-a5ef-fd479a26faca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_non_existent_chassis_uuid [0.081100s] ... 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-6f3f6915-48b0-4c76-8f12-d2e4c730d8cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis eeeeeeee-dddd-cccc-bbbb-aaaaaaaaaaaa could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_invalid_power_state [0.047860s] ... 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-5540bab2-8f99-4cd8-9deb-37b60dda2c1c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"volume connector update\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"power on\\\".\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_id [0.088921s] ... 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-00cc3907-413d-4eeb-85f9-05eae2486004 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: address, extra, is_smartnic, local_link_connection, node_ident, node_uuid, physical_network, portgroup_uuid, pxe_enabled, name, description\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_provision_updated_at [0.047041s] ... 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-60915ead-8b23-43a5-91ef-8ca01a58d9cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /provision_updated_at. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_by_name [0.087161s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/eggs/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cd20808b-f5f7-437a-a1b0-87d76f2d67d5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"console_enabled": false, "last_error": "fake-error", "power_state": "fake-state", "provision_state": "fake-state", "target_power_state": "fake-state", "target_provision_state": "fake-state", "provision_updated_at": "1971-03-09T00:00:00+00:00"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_multi [0.053954s] ... 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-732f4425-463a-4512-8daa-2d91067aeb94 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:03.986462+00:00", "updated_at": "2025-05-07T22:58:03.989145+00:00", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_id [0.042836s] ... 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-6c03c84a-265f-4746-aa3e-fa5c2ef35752 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid [0.045995s] ... 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-496da6cf-c014-42bf-800d-b77e18da7282 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:04.083884+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_uuid [0.135491s] ... 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-9096ab22-731f-4c41-b582-8c1457a1956c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:04.025410+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.TestListNodes.test_node_states_field_hidden_in_lower_version [0.090324s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2c0f41c8-58d1-4bfe-9727-9296e6f8f8bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.8 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:04.072530+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-080681a0-b141-4b4c-a72d-2653d73bf08a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:04.072530+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid_invalid_type [0.040080s] ... 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-010c46a4-5d45-40cb-98a2-af9d250c8803 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_raid [0.067442s] ... 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-0827a2e3-3ab2-4e25-93bc-cc75871b0c13 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {"console_enabled": false, "last_error": "fake-error", "power_state": "fake-state", "provision_state": "fake-state", "target_power_state": "fake-state", "target_provision_state": "fake-state", "provision_updated_at": "2000-01-01T00:00:00+00:00", "raid_config": {"foo": "bar"}, "target_raid_config": {"foo": "bar"}} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_non_existent_node_uuid [0.050346s] ... 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-7daad033-af79-49e1-8d80-0af45f89d8f7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_non_existent_node_uuid [0.103861s] ... 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-528f6136-8c6e-49cb-a94d-a42ce1456135 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_singular [0.048434s] ... 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-eb9fce5e-48a3-478f-af9e-62094f76bd15 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:04.224200+00:00", "updated_at": null, "connector_id": "test-connector-id-999", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_secure_boot [0.094392s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/ac906cfa-58fb-4e8d-aa45-745c99580e97/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f78524f3-ad47-4af6-b335-2cadef027a32 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": "uefi", "secure_boot": true} GET /v1/nodes/5e4a884e-a921-4e3a-9187-30bee81b7b61/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8f3d37d6-f2b4-473e-86e6-eb3bfb7f33ab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": "uefi", "secure_boot": false} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interface_fields [0.308859s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f WITH [{'path': '/boot_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4de7c157-1593-4f3a-a59b-d37f0f16123d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "fde0177d-0658-4fc4-8b26-b25df5415e0f", "created_at": "2025-05-07T22:58:04.021260+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/fde0177d-0658-4fc4-8b26-b25df5415e0f", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/ports", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/states", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/volume", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/volume", "rel": "bookmark"}]} PATCH /v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f WITH [{'path': '/console_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3aeb9798-9e60-4f2b-9d00-a43d385c93f2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "fde0177d-0658-4fc4-8b26-b25df5415e0f", "created_at": "2025-05-07T22:58:04.021260+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/fde0177d-0658-4fc4-8b26-b25df5415e0f", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/ports", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/states", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/volume", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/volume", "rel": "bookmark"}]} PATCH /v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f WITH [{'path': '/deploy_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3619143f-1597-45a3-a365-893379f3f8a3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "fde0177d-0658-4fc4-8b26-b25df5415e0f", "created_at": "2025-05-07T22:58:04.021260+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/fde0177d-0658-4fc4-8b26-b25df5415e0f", "rel": "self"}, {"href": "http://localhost/nodes/fd e0177d-0658-4fc4-8b26-b25df5415e0f", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/ports", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/states", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/volume", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/volume", "rel": "bookmark"}]} PATCH /v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f WITH [{'path': '/inspect_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9d2b7821-d2af-4b26-ad0a-c0082f782483 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "fde0177d-0658-4fc4-8b26-b25df5415e0f", "created_at": "2025-05-07T22:58:04.021260+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/fde0177d-0658-4fc4-8b26-b25df5415e0f", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/ports", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/states", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/volume", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/volume", "rel": "bookmark"}]} PATCH /v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f WITH [{'path': '/ma nagement_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-64125965-bc0f-4f42-a9aa-b11e09f1d568 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "fde0177d-0658-4fc4-8b26-b25df5415e0f", "created_at": "2025-05-07T22:58:04.021260+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/fde0177d-0658-4fc4-8b26-b25df5415e0f", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/ports", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/states", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/volume", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/volume", "rel": "bookmark"}]} PATCH /v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f WITH [{'path': '/power_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ba4ab909-c9d6-441d-baa4-89ea16acea5a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "fde0177d-0658-4fc4-8b26-b25df5415e0f", "created_at": "2025-05-07T22:58:04.021260+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/fde0177d-0658-4fc4-8b26-b25df5415e0f", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/ports", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/states", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/volume", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/volume", "rel": "bookmark"}]} PATCH /v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f WITH [{'path': '/raid_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dc7ebe90-bc25-4390-a049-59b397bca5de X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "fde0177d-0658-4fc4-8b26-b25df5415e0f", "created_at": "2025-05-07T22:58:04.021260+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/fde0177d-0658-4fc4-8b26-b25df5415e0f", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/ports", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/states", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/volume", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/volume", "rel": "bookmark"}]} PATCH /v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f WITH [{'path': '/vendor_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a63aa011-9d85-40c3-8f92-80033235a001 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "fde0177d-0658-4fc4-8b26-b25df5415e0f", "created_at": "2025-05-07T22:58:04.021260+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/fde0177d-0658-4fc4-8b26-b25df5415e0f", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/ports", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/states", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/volume", "rel": "self"}, {"href": "http://localhost/nodes/fde0177d-0658-4fc4-8b26-b25df5415e0f/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_byid [0.050991s] ... 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-95aca67f-d57a-4e2b-9d63-8a1c1bc7778e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:04.271519+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo": "bar"}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_invalid_api_version [0.036438s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_not_supported [0.046905s] ... 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-60eba9a2-77e8-43e7-813f-b67981a66110 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network [0.148166s] ... 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-0f88717b-3222-4848-bc7d-d084b0738daf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:04.266355+00:00", "updated_at": "2025-05-07T22:58:04.357153+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} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_secure_boot_hidden_in_lower_version [0.082231s] ... 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-592f3a94-1c07-4a16-ba35-0057f4add3d1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.74 {"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e5621996-5ba2-4efc-960a-d4e0f63d72b4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null} {2} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_not_found [0.042808s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/90889bf6-d93b-49d2-aab9-6878ec366019 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0e186dbe-feaa-4719-aed6-a07be168deb2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 90889bf6-d93b-49d2-aab9-6878ec366019 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_without_driver [0.046712s] ... 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-5b6088b3-4d43-4784-9175-42204491cb8a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The reset_interfaces parameter can only be used when changing the node's driver.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid [0.047157s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 204 No Content Openstack-Request-Id: req-0c0ed8ba-2e1b-489b-aa48-100c7fd20c6a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid_invalid_api_version [0.029287s] ... 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\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_old_api_version [0.090689s] ... 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-93854953-3b9b-4979-b00e-81bba43084cd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_storage_interface_hidden_in_lower_version [0.087686s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e44d1caa-869b-44f5-a525-1b6b288e7f8e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:04.423527+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-6ea75d93-1a6b-4d94-b51c-8677ebee5b8b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:04.423527+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_network_interface [0.095182s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/7a609d70-acdc-4c91-ad3c-bdbfb50f5c8e WITH [{'path': '/network_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0e7965ac-173e-4b87-bdce-1d75944870ff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "7a609d70-acdc-4c91-ad3c-bdbfb50f5c8e", "created_at": "2025-05-07T22:58:04.427703+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/7a609d70-acdc-4c91-ad3c-bdbfb50f5c8e", "rel": "self"}, {"href": "http://localhost/nodes/7a609d70-acdc-4c91-ad3c-bdbfb50f5c8e", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/7a609d70-acdc-4c91-ad3c-bdbfb50f5c8e/ports", "rel": "self"}, {"href": "http://localhost/nodes/7a609d70-acdc-4c91-ad3c-bdbfb50f5c8e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7a609d70-acdc-4c91-ad3c-bdbfb50f5c8e/states", "rel": "self"}, {"href": "http://localhost/nodes/7a609d70-acdc-4c91-ad3c-bdbfb50f5c8e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7a609d70-acdc-4c91-ad3c-bdbfb50f5c8e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7a609d70-acdc-4c91-ad3c-bdbfb50f5c8e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7a609d70-acdc-4c91-ad3c-bdbfb50f5c8e/volume", "rel": "self"}, {"href": "http://localhost/nodes/7a609d70-acdc-4c91-ad3c-bdbfb50f5c8e/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_invalid_power_state [0.041945s] ... 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-3f8f025a-f3cd-405e-8041-4837d25c42e7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"volume target deletion\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"power on\\\".\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_node_locked [0.042310s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-8775add1-f063-4819-9aff-d71ac0aac396 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_upgrade [0.098963s] ... 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-9909f473-7032-46ba-aa2a-36b05cebf720 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.34 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_traits_hidden_in_lower_version [0.092749s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1a8096b8-46a5-4571-9cec-2197e80e6aa9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.36 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:04.522394+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-70f57216-759a-4ee4-b030-95320d1de360 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:04.522394+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_storage_interface [0.100152s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/be5ab21e-0348-4431-9924-ac2f03123e38 WITH [{'path': '/storage_interface', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bcd05a15-5a74-47b8-9ea5-85cde791c59c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "be5ab21e-0348-4431-9924-ac2f03123e38", "created_at": "2025-05-07T22:58:04.525100+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/be5ab21e-0348-4431-9924-ac2f03123e38", "rel": "self"}, {"href": "http://localhost/nodes/be5ab21e-0348-4431-9924-ac2f03123e38", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/be5ab21e-0348-4431-9924-ac2f03123e38/ports", "rel": "self"}, {"href": "http://localhost/nodes/be5ab21e-0348-4431-9924-ac2f03123e38/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/be5ab21e-0348-4431-9924-ac2f03123e38/states", "rel": "self"}, {"href": "http://localhost/nodes/be5ab21e-0348-4431-9924-ac2f03123e38/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/be5ab21e-0348-4431-9924-ac2f03123e38/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/be5ab21e-0348-4431-9924-ac2f03123e38/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/be5ab21e-0348-4431-9924-ac2f03123e38/volume", "rel": "self"}, {"href": "http://localhost/nodes/be5ab21e-0348-4431-9924-ac2f03123e38/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target [0.054003s] ... 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-c6d3b6a2-d67e-41e1-b671-5297e29190ed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f1f9d0bc-2722-4fc3-a244-50439600d7ee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one [0.077815s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fa6fa8bb-7643-4684-8985-3d3ef3aa761b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_doesnt_contain_id [0.058614s] ... 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-6f1bc05a-3c6f-47f1-b6a7-81adf8b61f34 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:04.636906+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-6077d7af-c047-48c4-9ba9-3c7424bbd06e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:04.636906+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"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_maintenance [0.101882s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/61b3636d-b5db-4d94-9aa6-7c670417f843 WITH [{'path': '/instance_uuid', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e1caff29-7dc0-4180-af23-e499ed0be8f5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "61b3636d-b5db-4d94-9aa6-7c670417f843", "created_at": "2025-05-07T22:58:04.628994+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/61b3636d-b5db-4d94-9aa6-7c670417f843", "rel": "self"}, {"href": "http://localhost/nodes/61b3636d-b5db-4d94-9aa6-7c670417f843", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/61b3636d-b5db-4d94-9aa6-7c670417f843/ports", "rel": "self"}, {"href": "http://localhost/nodes/61b3636d-b5db-4d94-9aa6-7c670417f843/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_error [0.043529s] ... 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-5e534e26-b9c2-4a59-bc80-1e9c1e909203 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid [0.158974s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': '5baf34cf-5455-48f7-be3f-34619976f2d4', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c388eec1-0469-48c4-a04d-264c1bec4cad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:04.607506+00:00", "updated_at": "2025-05-07T22:58:04.700757+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": "5baf34cf-5455-48f7-be3f-34619976f2d4"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one_field_specific_santization [0.073512s] ... 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-d0d1218c-3172-44a1-95c9-8405af479e63 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "provision_state": "available", "maintenance": false, "instance_uuid": null, "last_error": "meow", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_generate_uuid [0.055198s] ... 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/bbb753b0-2e97-4a35-abf0-3959144d3f3f Openstack-Request-Id: req-b85c6dac-42de-4092-a693-32a556e07948 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "bbb753b0-2e97-4a35-abf0-3959144d3f3f", "created_at": "2025-05-07T22:58:04.737404+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/bbb753b0-2e97-4a35-abf0-3959144d3f3f", "rel": "self"}, {"href": "http://localhost/volume/targets/bbb753b0-2e97-4a35-abf0-3959144d3f3f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/volume/targets/bbb753b0-2e97-4a35-abf0-3959144d3f3f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-436365c3-bbcc-4a11-bc8f-f4a9689158ad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "bbb753b0-2e97-4a35-abf0-3959144d3f3f", "created_at": "2025-05-07T22:58:04.737404+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/bbb753b0-2e97-4a35-abf0-3959144d3f3f", "rel": "self"}, {"href": "http://localhost/volume/targets/bbb753b0-2e97-4a35-abf0-3959144d3f3f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_api_version [0.030311s] ... 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.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_power_transition [0.097666s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/f56fe8fe-608a-4a88-b583-a0c608c8c6b8 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-20bf9549-f47e-40fb-9db8-2d24ddf8c30b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "f56fe8fe-608a-4a88-b583-a0c608c8c6b8", "created_at": "2025-05-07T22:58:04.726729+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/f56fe8fe-608a-4a88-b583-a0c608c8c6b8", "rel": "self"}, {"href": "http://localhost/nodes/f56fe8fe-608a-4a88-b583-a0c608c8c6b8", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f56fe8fe-608a-4a88-b583-a0c608c8c6b8/ports", "rel": "self"}, {"href": "http://localhost/nodes/f56fe8fe-608a-4a88-b583-a0c608c8c6b8/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_old_api [0.080265s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': 'a507ac13-d1ee-46ef-8fd5-6c26af233bdb', 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-dc899616-4f2f-4d51-8ab2-45e8d6caa02d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_node_uuid_format [0.034632s] ... 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-0bb40445-1a72-499d-bb2f-9713e6312829 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 123 is not of type 'string'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource [0.121671s] ... 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-2da8233e-f773-45aa-9dd5-0ab895c651f6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"portgroups": [{"uuid": "b094630f-be67-4eee-b6b3-f65bd984b014", "address": "52:54:00:cf:2d:30", "name": "pg-0", "links": [{"href": "http://localhost/v1/portgroups/b094630f-be67-4eee-b6b3-f65bd984b014", "rel": "self"}, {"href": "http://localhost/portgroups/b094630f-be67-4eee-b6b3-f65bd984b014", "rel": "bookmark"}]}, {"uuid": "a738005b-6236-4dc4-b9b6-dcf0a6117e34", "address": "52:54:00:cf:2d:31", "name": "pg-1", "links": [{"href": "http://localhost/v1/portgroups/a738005b-6236-4dc4-b9b6-dcf0a6117e34", "rel": "self"}, {"href": "http://localhost/portgroups/a738005b-6236-4dc4-b9b6-dcf0a6117e34", "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-aa8d80b6-0da5-443c-b348-1abc99b3d327 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"portgroups": [{"uuid": "b094630f-be67-4eee-b6b3-f65bd984b014", "address": "52:54:00:cf:2d:30", "name": "pg-0", "links": [{"href": "http://localhost/v1/portgroups/b094630f-be67-4eee-b6b3-f65bd984b014", "rel": "self"}, {"href": "http://localhost/portgroups/b094630f-be67-4eee-b6b3-f65bd984b014", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=1&marker=b094630f-be67-4eee-b6b3-f65bd984b014"} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_node_uuid [0.034231s] ... 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-170f2cb8-e9da-41c8-8dd3-18ff847bf4d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 'node_uuid' is a required property\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_type [0.035104s] ... 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-04858f22-1083-4e94-b482-f12869dccf3d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 'volume_type' is a required property\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_value [0.031117s] ... 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-3511cc80-e5a0-4615-8103-84a755244735 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 'boot_index' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link [0.073908s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-af20058c-3ed5-435a-8a7d-12e7fc72f737 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:04.899187+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "resource_class": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove [0.161827s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': '6d1bd9d3-dd55-4bb0-8377-3f76d71fd013', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a3deeb53-06d6-4d3f-8fde-99849c4ef568 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:04.848207+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_volume_target.TestPost.test_create_volume_target_node_uuid_not_found [0.041376s] ... 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-735a56ef-c8d4-420f-b0ca-66d508a44dd3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'. \", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link_hidden_for_older_versions [0.079243s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5b02d2e8-7e0e-44f1-8fac-389eea8497d5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.20 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:04.976789+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "reservation": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_valid_extra [0.053398s] ... 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-09e0f21d-a730-4603-a028-7a09a8d49cc6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:05.000702+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-a8786446-00b5-4fc0-9665-9326a780439c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:05.000702+00:00", "updated_at": null, "boot_index": 0, "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_node_uuid_to_node_id_mapping [0.043473s] ... 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-92e627e6-8014-4fba-b548-9a7146277418 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:05.052288+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_node.TestListNodes.test_portgroups_subresource_old_api_version [0.060839s] ... 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.api.controllers.v1.test_node.TestPatch.test_update_automated_clean [0.301975s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/5d6257a6-371f-448c-b338-ed725fc7c4c4 WITH [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e8c9b9a9-5860-4731-86d7-9dbaa5377899 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"uuid": "5d6257a6-371f-448c-b338-ed725fc7c4c4", "created_at": "2025-05-07T22:58:05.033006+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/5d6257a6-371f-448c-b338-ed725fc7c4c4", "rel": "self"}, {"href": "http://localhost/nodes/5d6257a6-371f-448c-b338-ed725fc7c4c4", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5d6257a6-371f-448c-b338-ed725fc7c4c4/ports", "rel": "self"}, {"href": "http://localhost/nodes/5d6257a6-371f-448c-b338-ed725fc7c4c4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5d6257a6-371f-448c-b338-ed725fc7c4c4/states", "rel": "self"}, {"href": "http://localhost/nodes/5d6257a6-371f-448c-b338-ed725fc7c4c4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5d6257a6-371f-448c-b338-ed725fc7c4c4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5d6257a6-371f-448c-b338-ed725fc7c4c4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5d6257a6-371f-448c-b338-ed725fc7c4c4/volume", "rel": "self"}, {"href": "http://localhost/nodes/5d6257a6-371f-448c-b338-ed725fc7c4c4/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_1_values ... SKIPPED: For value storage {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove_add [0.166737s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH [{'path': '/portgroup_uuid', 'value': '9cb1e13f-dc05-4128-8e48-8aa5d6629260', 'op': 'remove'}, {'path': '/portgroup_uuid', 'value': '083763c4-9c06-41cd-87db-601d0e388f8c', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ad015776-23e5-4057-ac94-8bd9f2583feb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:05.006098+00:00", "updated_at": "2025-05-07T22:58:05.106407+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": "083763c4-9c06-41cd-87db-601d0e388f8c"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean_old_api [0.048318s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/937aeceb-bd03-45de-a995-92f75e7f93fa WITH [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-868f8c09-13a2-4746-9dc8-81df0b316189 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_2_unauthenticated_user_cannot_get_node [0.046871s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/21e36c7d-1b85-44e1-b08f-afa73943873b WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-033001e6-a264-4f8f-b756-54c3fe3f50b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 21e36c7d-1b85-44e1-b08f-afa73943873b could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_3_project_admin_can_get_node [0.041795s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/7124104f-d9f3-412a-be3c-098609f40e23 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9a4105ad-8269-493a-a395-bd214c098fbc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 7124104f-d9f3-412a-be3c-098609f40e23 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean_with_false [0.058248s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/397a688b-ff19-416a-b5a1-f311e777a884 WITH [{'path': '/automated_clean', 'value': False, 'op': 'replace'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-775c4805-3092-442a-bdf3-9fad1142b3ee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource [0.125921s] ... 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-e7336ab8-5640-4c92-af12-b196cc577bae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "6842702f-e59a-4521-8d90-99f435fa7f84", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/6842702f-e59a-4521-8d90-99f435fa7f84", "rel": "self"}, {"href": "http://localhost/ports/6842702f-e59a-4521-8d90-99f435fa7f84", "rel": "bookmark"}]}, {"uuid": "85e36bba-7f85-4d26-ad95-be2671290ed2", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/85e36bba-7f85-4d26-ad95-be2671290ed2", "rel": "self"}, {"href": "http://localhost/ports/85e36bba-7f85-4d26-ad95-be2671290ed2", "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-f2245ff8-8327-4987-a298-ebf84e70fb05 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"ports": [{"uuid": "6842702f-e59a-4521-8d90-99f435fa7f84", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/6842702f-e59a-4521-8d90-99f435fa7f84", "rel": "self"}, {"href": "http://localhost/ports/6842702f-e59a-4521-8d90-99f435fa7f84", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=6842702f-e59a-4521-8d90-99f435fa7f84"} {2} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_4_project_member_cannot_get_node [0.050893s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/f123e245-501d-4b87-b9c2-205147f01e80 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c2578ad9-e3f6-455e-87fe-b46940f63269 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node f123e245-501d-4b87-b9c2-205147f01e80 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_singular [0.125271s] ... 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-18a2e30a-21af-4cff-aeed-efdbed8f644f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:05.173010+00:00", "updated_at": "2025-05-07T22:58:05.246880+00:00", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_by_name_unsupported [0.060399s] ... 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-1cc0da40-438f-4b8a-ad8d-210c460b29fe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-57.1 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_invalid_ident [0.057072s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/123 123/ports WITH {} GOT Response: 400 Bad Request Content-Type: application/json {"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected UUID or name for node: 123 123\"}"} {2} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_5_public_api [0.034987s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-865de38c-933f-40db-a055-ff18e594b90f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"name": "OpenStack Ironic API", "description": "Ironic is an OpenStack project which enables the provision and management of baremetal machines.", "default_version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "versions": [{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}]} {2} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_6_public_api_v1 [0.039775s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0eff85fc-e2da-4342-a370-146c4495964d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "portgroups": [{"href": "http://localhost/v1/portgroups/", "rel": "self"}, {"href": "http://localhost/portgroups/", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "lookup": [{"href": "http://localhost/v1/lookup/", "rel": "self"}, {"href": "http://localhost/lookup/", "rel": "bookmark"}], "heartbeat": [{"href": "http://localhost/v1/heartbeat/", "rel": "self"}, {"href": "http://localhost/heartbeat/", "rel": "bookmark"}], "conductors": [{"href": "http://localhost/v1/conductors/", "rel": "self"}, {"href": "http://localhost/conductors/", "rel": "bookmark"}], "allocations": [{"href": "http://localhost/v1/allocations/", "rel": "self"}, {"href": "http://localhost/allocations/", "rel": "bookmark"}], "events": [{"href": "http://localhost/v1/events/", "rel": "self"}, {"href": "http://localhost/events/", "rel": "bookmark"}], "deploy_templates": [{"href": "http://localhost/v1/deploy_templates/", "rel": "self"}, {"href": "http://localhost/deploy_templates/", "rel": "bookmark"}], "shards": [{"href": "http://localhost/v1/shards/", "rel": "self"}, {"href": "http://localhost/shards/", "rel": "bookmark"}], "runbooks": [{"href": "http://localhost/v1/runbooks/", "rel": "self"}, {"href": "http://localhost/runbooks/", "rel": "bookmark"}], "inspection_rules": [{"href": "http://localhost/v1/inspection_rules/", "rel": "self"}, {"href": "http://localhost/inspection_rules/", "rel": "bookmark"}], "continue_inspection": [{"href": "http://localhost/v1/continue_inspection/", "rel": "self"}, {"href": "http://localhost/continue_inspection/", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_set_pxe_enabled_false_old_api [0.083284s] ... 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-3ae93b0a-7060-465e-b00e-cc38a3e7d75c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group [0.098212s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/eec6ab5a-7652-4ebd-bf14-411a17d4b1c9 WITH [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2a1df2be-d4bc-4817-8746-25636a7f9ec5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "eec6ab5a-7652-4ebd-bf14-411a17d4b1c9", "created_at": "2025-05-07T22:58:05.297594+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/eec6ab5a-7652-4ebd-bf14-411a17d4b1c9", "rel": "self"}, {"href": "http://localhost/nodes/eec6ab5a-7652-4ebd-bf14-411a17d4b1c9", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/eec6ab5a-7652-4ebd-bf14-411a17d4b1c9/ports", "rel": "self"}, {"href": "http://localhost/nodes/eec6ab5a-7652-4ebd-bf14-411a17d4b1c9/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/eec6ab5a-7652-4ebd-bf14-411a17d4b1c9/states", "rel": "self"}, {"href": "http://localhost/nodes/eec6ab5a-7652-4ebd-bf14-411a17d4b1c9/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/eec6ab5a-7652-4ebd-bf14-411a17d4b1c9/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/eec6ab5a-7652-4ebd-bf14-411a17d4b1c9/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/eec6ab5a-7652-4ebd-bf14-411a17d4b1c9/volume", "rel": "self"}, {"href": "http://localhost/nodes/eec6ab5a-7652-4ebd-bf14-411a17d4b1c9/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_7_public_api_v1_slash [0.043139s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-86fe748f-3f8d-40ea-b344-051626aacd9f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "portgroups": [{"href": "http://localhost/v1/portgroups/", "rel": "self"}, {"href": "http://localhost/portgroups/", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "lookup": [{"href": "http://localhost/v1/lookup/", "rel": "self"}, {"href": "http://localhost/lookup/", "rel": "bookmark"}], "heartbeat": [{"href": "http://localhost/v1/heartbeat/", "rel": "self"}, {"href": "http://localhost/heartbeat/", "rel": "bookmark"}], "conductors": [{"href": "http://localhost/v1/conductors/", "rel": "self"}, {"href": "http://localhost/conductors/", "rel": "bookmark"}], "allocations": [{"href": "http://localhost/v1/allocations/", "rel": "self"}, {"href": "http://localhost/allocations/", "rel": "bookmark"}], "events": [{"href": "http://localhost/v1/events/", "rel": "self"}, {"href": "http://localhost/events/", "rel": "bookmark"}], "deploy_templates": [{"href": "http://localhost/v1/deploy_templates/", "rel": "self"}, {"href": "http://localhost/deploy_templates/", "rel": "bookmark"}], "shards": [{"href": "http://localhost/v1/shards/", "rel": "self"}, {"href": "http://localhost/shards/", "rel": "bookmark"}], "runbooks": [{"href": "http://localhost/v1/runbooks/", "rel": "self"}, {"href": "http://localhost/runbooks/", "rel": "bookmark"}], "inspection_rules": [{"href": "http://localhost/v1/inspection_rules/", "rel": "self"}, {"href": "http://localhost/inspection_rules/", "rel": "bookmark"}], "continue_inspection": [{"href": "http://localhost/v1/continue_inspection/", "rel": "self"}, {"href": "http://localhost/continue_inspection/", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_8_public_api_v1_json [0.032036s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1.json 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.TestPatch.test_update_conductor_group_old_api [0.051912s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/c6a24e47-d0ff-461a-bc38-e7cd9df30a86 WITH [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-aae25d01-4c7f-4eb0-8b1b-647fdc636247 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_9_public_api_v1_xml [0.040822s] ... 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.controllers.v1.test_port.TestPatch.test_update_address_invalid_format [0.105080s] ... 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-3351017f-bc96-4248-8746-e41ec5eab3ed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-format\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_001_values ... SKIPPED: These are fake reference values for YAML templating {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description [0.099630s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/0723e543-147d-4803-9ee2-6264fadfd22a WITH [{'path': '/description', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2d29e92a-5726-43f2-a089-806e92f19422 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.51 {"uuid": "0723e543-147d-4803-9ee2-6264fadfd22a", "created_at": "2025-05-07T22:58:05.451672+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/0723e543-147d-4803-9ee2-6264fadfd22a", "rel": "self"}, {"href": "http://localhost/nodes/0723e543-147d-4803-9ee2-6264fadfd22a", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/0723e543-147d-4803-9ee2-6264fadfd22a/ports", "rel": "self"}, {"href": "http://localhost/nodes/0723e543-147d-4803-9ee2-6264fadfd22a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/0723e543-147d-4803-9ee2-6264fadfd22a/states", "rel": "self"}, {"href": "http://localhost/nodes/0723e543-147d-4803-9ee2-6264fadfd22a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/0723e543-147d-4803-9ee2-6264fadfd22a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/0723e543-147d-4803-9ee2-6264fadfd22a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/0723e543-147d-4803-9ee2-6264fadfd22a/volume", "rel": "self"}, {"href": "http://localhost/nodes/0723e543-147d-4803-9ee2-6264fadfd22a/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byaddress_not_allowed [0.078192s] ... 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-bf27e2da-7f31-46f5-8f45-2fa61ab82471 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID or name for port_ident: 52:54:00:cf:2d:31\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description_oversize [0.046686s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/bcbb312b-273c-45f5-b612-ebc5b70b4d34 WITH [{'path': '/description', 'value': '123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812 3456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c9263f0d-6417-48ae-8c44-3e4eee4a5822 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.51 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update node with description exceeding 4096 characters\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_002_nodes_post_admin [0.095109s] ... 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-86679030-8f28-42d4-847c-f941648b5257 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver [0.084499s] ... 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-971c548a-c9d5-429a-b883-680ecbc85cec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byid [0.144222s] ... 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-345b420a-3e06-4386-8d63-f235c3854479 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:05.569772+00:00", "updated_at": "2025-05-07T22:58:05.659136+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"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_003_nodes_post_member [0.094125s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6ae0ec20-732c-477a-a884-c0a99c96dd67 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver_info [0.086787s] ... 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-e13874d3-7149-4d2f-84f2-75babcee9bb6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error Message\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_link [0.450838s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-919b4893-387a-4ee5-a785-679d8b13e305 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:05.698448+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_on_disabled_bios_boot_mode [0.048892s] ... 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-e5ebe619-67f0-469f-949e-173b5fc4f47a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'bios' boot mode is not allowed for provisioning operation.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_node_not_found [0.061740s] ... 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-7d2d89cf-b8cc-4534-82ff-31734c014622 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup None could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_004_nodes_post_observer [0.113850s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7743d8d4-9934-4256-8895-c205ea5f9ab1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_allowed [0.155403s] ... 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-2bf81d84-ddf0-4b8b-a013-60bd0decf74c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:05.720062+00:00", "updated_at": "2025-05-07T22:58:05.815437+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.api.controllers.v1.test_node.TestPatch.test_update_fails_on_disabled_uefi_boot_mode [0.046666s] ... 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-f129d807-3b54-4da9-a2ec-93845d86798f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'uefi' boot mode is not allowed for provisioning operation.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_on_invalid_boot_mode [0.037764s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_noid [0.065356s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_005_nodes_get_node_admin [0.086696s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f1be37f8-55dd-43ae-b337-950aeeff4f63 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:05.841690+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_port.TestPatch.test_update_in_inspecting_not_allowed [0.137443s] ... 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-337bf095-435e-4465-acbf-94bb6f03715a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.39 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update port \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c781\\\" on \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_via_portgroups_subres_not_allowed [0.078814s] ... 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-ed07a7ca-bdf6-44c0-8534-bb7677fa91e7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_006_nodes_get_node_member [0.081550s] ... 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-7a6a38ec-1526-46e3-b77e-5e09f6ead8a8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key [0.070910s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b85c69f2-815d-4669-bb33-61ea7def2973 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "3a3ffa5e-b12b-4a84-940a-5babaf479a47", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/3a3ffa5e-b12b-4a84-940a-5babaf479a47", "rel": "self"}, {"href": "http://localhost/nodes/3a3ffa5e-b12b-4a84-940a-5babaf479a47", "rel": "bookmark"}]}, {"uuid": "acef2ff0-db3e-4e5f-a0fa-55a1d408f997", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/acef2ff0-db3e-4e5f-a0fa-55a1d408f997", "rel": "self"}, {"href": "http://localhost/nodes/acef2ff0-db3e-4e5f-a0fa-55a1d408f997", "rel": "bookmark"}]}, {"uuid": "e3ea6577-aecc-4c3e-b0ae-a5dd8632588c", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/e3ea6577-aecc-4c3e-b0ae-a5dd8632588c", "rel": "self"}, {"href": "http://localhost/nodes/e3ea6577-aecc-4c3e-b0ae-a5dd8632588c", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_not_found [0.086806s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/5d0d4782-0f64-4f27-a5ef-52b48b086308 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b9872d05-74b6-4a17-a5ae-f79f9ba2d8ea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 5d0d4782-0f64-4f27-a5ef-52b48b086308 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_allowed [0.085638s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?sort_key=resource_class WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bba096ee-c1d4-434a-a17f-6c9431484707 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"nodes": [{"uuid": "8384a738-80ff-49d1-9973-e4093fb1f730", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/8384a738-80ff-49d1-9973-e4093fb1f730", "rel": "self"}, {"href": "http://localhost/nodes/8384a738-80ff-49d1-9973-e4093fb1f730", "rel": "bookmark"}]}, {"uuid": "47928dd3-6402-4c9d-a7e3-71d87dc8bec6", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/47928dd3-6402-4c9d-a7e3-71d87dc8bec6", "rel": "self"}, {"href": "http://localhost/nodes/47928dd3-6402-4c9d-a7e3-71d87dc8bec6", "rel": "bookmark"}]}, {"uuid": "ce86e4da-d128-44d8-b932-08b40015dbe4", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/ce86e4da-d128-44d8-b932-08b40015dbe4", "rel": "self"}, {"href": "http://localhost/nodes/ce86e4da-d128-44d8-b932-08b40015dbe4", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_port_address_normalized [0.132653s] ... 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-6a92c005-400f-4fda-866e-0f6f5e356c6e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:06.090094+00:00", "updated_at": "2025-05-07T22:58:06.173440+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_invalid [0.088570s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e175bd11-3e6f-4a53-87b0-c6a34ea26099 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/nodes?sort_key=properties WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9330d3e3-dd03-4143-b3ec-dfca49203fcb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/nodes?sort_key=driver_info WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e1797c06-e6c5-4d42-9d76-1da0f2bcb558 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value driver_info is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/nodes?sort_key=extra WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c5fb9542-c5aa-4bda-a3fe-46615420ca8f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/nodes?sort_key=instance_info WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d5e358ec-0903-46dd-9e03-50d7397d6bd3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value instance_info is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/nodes?sort_key=driver_internal_info WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2173d966-d25c-4e49-a3c7-24e479c7693a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value driver_internal_info is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/nodes?sort_key=clean_step WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-72721687-ee99-4b46-a2d1-52a7f160ea50 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value clean_step is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/nodes?sort_key=traits WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d5cbd857-bc8b-4485-a9d3-87cf51e76195 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value traits is an invalid field for sorting\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_007_nodes_get_node_observer [0.279712s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6af5df2c-c348-440d-977b-2a8c42e9c086 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:06.217833+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_node.TestListNodes.test_sort_key_not_allowed [0.059879s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?sort_key=resource_class WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-0cb00afc-87cd-47a7-99fd-b46219a432d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.20 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_allowed [0.136366s] ... 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-49d92ed2-d15c-4885-85ba-1dbf00a65ef1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.19 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:06.229926+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_UPDATE_ALLOWED_STATES [0.463717s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/89f12f46-8791-4348-a2e8-da554e8f3a58 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3a93c121-4362-4d31-ae34-7e8fd269cefc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "89f12f46-8791-4348-a2e8-da554e8f3a58", "created_at": "2025-05-07T22:58:05.901398+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/89f12f46-8791-4348-a2e8-da554e8f3a58", "rel": "self"}, {"href": "http://localhost/nodes/89f12f46-8791-4348-a2e8-da554e8f3a58", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/89f12f46-8791-4348-a2e8-da554e8f3a58/ports", "rel": "self"}, {"href": "http://localhost/nodes/89f12f46-8791-4348-a2e8-da554e8f3a58/ports", "rel": "bookmark"}]} PATCH /v1/nodes/51970cae-86c8-496e-9740-7ac477d9855d WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2d557477-3858-47e2-be89-790932a17918 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "51970cae-86c8-496e-9740-7ac477d9855d", "created_at": "2025-05-07T22:58:05.947825+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/51970cae-86c8-496e-9740-7ac477d9855d", "rel": "self"}, {"href": "http://localhost/nodes/51970cae-86c8-496e-9740-7ac477d9855d", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/51970cae-86c8-496e-9740-7ac477d9855d/ports", "rel": "self"}, {"href": "http://localhost/nodes/51970cae-86c8-496e-9740-7ac477d9855d/ports", "rel": "bookmark"}]} PATCH /v1/nodes/ae0a2cd5-ee32-40eb-ae73-94a87504b091 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-82120f7b-abc6-4376-ab04-6bdf1038f2b3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "ae0a2cd5-ee32-40eb-ae73-94a87504b091", "created_at": "2025-05-07T22:58:05.980087+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/ae0a2cd5-ee32-40eb-ae73-94a87504b091", "rel": "self"}, {"href": "http://localhost/nodes/ae0a2cd5-ee32-40eb-ae73-94a87504b091", "rel": "bookmark"} ], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ae0a2cd5-ee32-40eb-ae73-94a87504b091/ports", "rel": "self"}, {"href": "http://localhost/nodes/ae0a2cd5-ee32-40eb-ae73-94a87504b091/ports", "rel": "bookmark"}]} PATCH /v1/nodes/e708b19f-1b20-4042-b77f-9ad22e5d3973 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cb0612a5-8dae-41dd-aade-81559d5f387b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e708b19f-1b20-4042-b77f-9ad22e5d3973", "created_at": "2025-05-07T22:58:06.011191+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/e708b19f-1b20-4042-b77f-9ad22e5d3973", "rel": "self"}, {"href": "http://localhost/nodes/e708b19f-1b20-4042-b77f-9ad22e5d3973", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e708b19f-1b20-4042-b77f-9ad22e5d3973/ports", "rel": "self"}, {"href": "http://localhost/nodes/e708b19f-1b20-4042-b77f-9ad22e5d3973/ports", "rel": "bookmark"}]} PATCH /v1/nodes/15ab976c-5d11-44af-abb2-954280b4c11b WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c68c2554-530b-4f3e-bc50-16a7eb673fae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "15ab976c-5d11-44af-abb2-954280b4c11b", "created_at": "2025-05-07T22:58:06.042730+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/15ab976c-5d11-44af-abb2-954280b4c11b", "rel": "self"}, {"href": "http://localhost/nodes/15ab976c-5d11-44af-abb2-954280b4c11b", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/15ab976c-5d11-44af-abb2-954280b4c11b/ports", "rel": "self"}, {"href": "http://localhost/nodes/15ab976c-5d11-44af-abb2-954280b4c11b/ports", "rel": "bookmark"}]} PATCH /v1/nodes/4d9a74ec-6a67-43dd-8a37-6b97fe6fe2d4 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b2ea26d4-7aec-43d8-8fc6-5b9fcd9e72db X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "4d9a74ec-6a67-43dd-8a37-6b97fe6fe2d4", "created_at": "2025-05-07T22:58:06.072395+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/4d9a74ec-6a67-43dd-8a37-6b97fe6fe2d4", "rel": "self"}, {"href": "http://localhost/nodes/4d9a74ec-6a67-43dd-8a37-6b97fe6fe2d4", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/4d9a74ec-6a67-43dd-8a37-6b97fe6fe2d4/ports", "rel": "self"}, {"href": "http://localhost/nodes/4d9a74ec-6a67-43dd-8a37-6b97fe6fe2d4/ports", "rel": "bookmark"}]} PATCH /v1/nodes/0d408227-afca-42d8-ad1d-3e58bb9818a3 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7c3f0f2b-0f3d-4f6b-b314-5ee6a3fab3a2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "0d408227-afca-42d8-ad1d-3e58bb9818a3", "created_at": "2025-05-07T22:58:06.105644+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/0d408227-afca-42d8-ad1d-3e58bb9818a3", "rel": "self"}, {"href": "http://localhost/nodes/0d408227-afca-42d8-ad1d-3e58bb9818a3", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/0d408227-afca-42d8-ad1d-3e58bb9818a3/ports", "rel": "self"}, {"href": "http://localhost/nodes/0d408227-afca-42d8-ad1d-3e58bb9818a3/ports", "rel": "bookmark"}]} PATCH /v1/nodes/ddacb524-49d6-44e8-b061-1b22adb9f155 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a3e10ad6-8b15-4b71-a6c3-9224847b03a2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "ddacb524-49d6-44e8-b061-1b22adb9f155", "created_at": "2025-05-07T22:58:06.133957+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/ddacb524-49d6-44e8-b061-1b22adb9f155", "rel": "self"}, {"href": "http://localhost/nodes/ddacb524-49d6-44e8-b061-1b22adb9f155", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ddacb524-49d6-44e8-b061-1b22adb9f155/ports", "rel": "self"}, {"href": "http://localhost/nodes/ddacb524-49d6-44e8-b061-1b22adb9f155/ports", "rel": "bookmark"}]} PATCH /v1/nodes/d87762eb-3b66-46bd-92fc-fade98432fac WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-69d9bff8-1cdc-477f-9100-1ab4ad9dc623 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "d87762eb-3b66-46bd-92fc-fade98432fac", "created_at": "2025-05-07T22:58:06.164994+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/d87762eb-3b66-46bd-92fc-fade98432fac", "rel": "self"}, {"href": "http://localhost/nodes/d87762eb-3b66-46bd-92fc-fade98432fac", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d87762eb-3b66-46bd-92fc-fade98432fac/ports", "rel": "self"}, {"href": "http://localhost/nodes/d87762eb-3b66-46bd-92fc-fade98432fac/ports", "rel": "bookmark"}]} PATCH /v1/nodes/2633e38b-8b34-4a73-bc75-f086e2b4dd00 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c2f151ae-5e33-4315-890b-dc3697eef0f7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "2633e38b-8b34-4a73-bc75-f086e2b4dd00", "created_at": "2025-05-07T22:58:06.199443+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/2633e38b-8b34-4a73-bc75-f086e2b4dd00", "rel": "self"}, {"href": "http://localhost/nodes/2633e38b-8b34-4a73-bc75-f086e2b4dd00", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/2633e38b-8b34-4a73-bc75-f086e2b4dd00/ports", "rel": "self"}, {"href": "http://localhost/nodes/2633e38b-8b34-4a73-bc75-f086e2b4dd00/ports", "rel": "bookmark"}]} PATCH /v1/nodes/a654cb46-4481-49db-b5d5-15d34764a446 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e68a4867-3966-49a4-a951-0d4276e15ac4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "a654cb46-4481-49db-b5d5-15d34764a446", "created_at": "2025-05-07T22:58:06.230229+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/a654cb46-4481-49db-b5d5-15d34764a446", "rel": "self"}, {"href": "http://localhost/nodes/a654cb46-4481-49db-b5d5-15d34764a446", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a654cb46-4481-49db-b5d5-15d34764a446/ports", "rel": "self"}, {"href": "http://localhost/nodes/a654cb46-4481-49db-b5d5-15d34764a446/ports", "rel": "bookmark"}]} PATCH /v1/nodes/721158d3-43e5-40ba-89f0-13fb6cc6e151 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8333a579-d995-4264-b55b-3f438058da18 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "721158d3-43e5-40ba-89f0-13fb6cc6e151", "created_at": "2025-05-07T22:58:06.261014+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/721158d3-43e5-40ba-89f0-13fb6cc6e151", "rel": "self"}, {"href": "http://localhost/nodes/721158d3-43e5-40ba-89f0-13fb6cc6e151", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/721158d3-43e5-40ba-89f0-13fb6cc6e151/ports", "rel": "self"}, {"href": "http://localhost/nodes/721158d3-43e5-40ba-89f0-13fb6cc6e151/ports", "rel": "bookmark"}]} PATCH /v1/nodes/e677d763-7f31-4b78-a8fb-95e48737da1e WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-94127546-6ff7-4752-94cd-196383e3005c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "e677d763-7f31-4b78-a8fb-95e48737da1e", "created_at": "2025-05-07T22:58:06.293168+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/e677d763-7f31-4b78-a8fb-95e48737da1e", "rel": "self"}, {"href": "http://localhost/nodes/e677d763-7f31-4b78-a8fb-95e48737da1e", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e677d763-7f31-4b78-a8fb-95e48737da1e/ports", "rel": "self"}, {"href": "http://localhost/nodes/e677d763-7f31-4b78-a8fb-95e48737da1e/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_008_nodes_get_node_other_admin [0.074696s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c879ded3-0d94-4e0e-af09-000a43a4a2b4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:06.285996+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_node.TestListNodes.test_unassociated_nodes_insensitive [0.097699s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?associated=false WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f0bc6edc-5360-4429-8f8b-e6c34efa5d81 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "0011f901-cae8-454d-a799-6ab7c75d7efa", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/0011f901-cae8-454d-a799-6ab7c75d7efa", "rel": "self"}, {"href": "http://localhost/nodes/0011f901-cae8-454d-a799-6ab7c75d7efa", "rel": "bookmark"}]}, {"uuid": "84847248-fa0e-4446-b159-ba4bcb87a432", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/84847248-fa0e-4446-b159-ba4bcb87a432", "rel": "self"}, {"href": "http://localhost/nodes/84847248-fa0e-4446-b159-ba4bcb87a432", "rel": "bookmark"}]}, {"uuid": "5175364e-1658-490a-b217-573d7f46ec23", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/5175364e-1658-490a-b217-573d7f46ec23", "rel": "self"}, {"href": "http://localhost/nodes/5175364e-1658-490a-b217-573d7f46ec23", "rel": "bookmark"}]}]} GET /v1/nodes?associated=FALSE WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2988ad80-5c8e-42fb-bba8-fd46f1a6afb1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "0011f901-cae8-454d-a799-6ab7c75d7efa", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/0011f901-cae8-454d-a799-6ab7c75d7efa", "rel": "self"}, {"href": "http://localhost/nodes/0011f901-cae8-454d-a799-6ab7c75d7efa", "rel": "bookmark"}]}, {"uuid": "84847248-fa0e-4446-b159-ba4bcb87a432", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/84847248-fa0e-4446-b159-ba4bcb87a432", "rel": "self"}, {"href": "http://localhost/nodes/84847248-fa0e-4446-b159-ba4bcb87a432", "rel": "bookmark"}]}, {"uuid": "5175364e-1658-490a-b217-573d7f46ec23", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/5175364e-1658-490a-b217-573d7f46ec23", "rel": "self"}, {"href": "http://localhost/nodes/5175364e-1658-490a-b217-573d7f46ec23", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_old_api_version [0.086783s] ... 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-a71a8be4-d6e8-4723-b517-0c026e2a8017 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_allowed [0.088131s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/6efef2e1-902f-4d23-a3eb-5b7bae65a787 WITH [{'path': '/instance_uuid', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b9a007dc-bd96-495b-ac80-c994bea2694e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"uuid": "6efef2e1-902f-4d23-a3eb-5b7bae65a787", "created_at": "2025-05-07T22:58:06.363891+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/6efef2e1-902f-4d23-a3eb-5b7bae65a787", "rel": "self"}, {"href": "http://localhost/nodes/6efef2e1-902f-4d23-a3eb-5b7bae65a787", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6efef2e1-902f-4d23-a3eb-5b7bae65a787/ports", "rel": "self"}, {"href": "http://localhost/nodes/6efef2e1-902f-4d23-a3eb-5b7bae65a787/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6efef2e1-902f-4d23-a3eb-5b7bae65a787/states", "rel": "self"}, {"href": "http://localhost/nodes/6efef2e1-902f-4d23-a3eb-5b7bae65a787/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6efef2e1-902f-4d23-a3eb-5b7bae65a787/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6efef2e1-902f-4d23-a3eb-5b7bae65a787/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6efef2e1-902f-4d23-a3eb-5b7bae65a787/volume", "rel": "self"}, {"href": "http://localhost/nodes/6efef2e1-902f-4d23-a3eb-5b7bae65a787/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_009_nodes_get_admin [0.088080s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-26aa4154-ec59-4231-8305-3f30844be902 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "instance_uuid": "33f3f071-88b5-4e13-8dde-b14b53ec9eb1", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_with_limit [0.052529s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes?associated=False&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cfc6ed6e-7f01-4578-b819-8dd0c83b26e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"nodes": [{"uuid": "f0563580-3312-478c-b7ab-b751c4097d8a", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/f0563580-3312-478c-b7ab-b751c4097d8a", "rel": "self"}, {"href": "http://localhost/nodes/f0563580-3312-478c-b7ab-b751c4097d8a", "rel": "bookmark"}]}, {"uuid": "931f39c8-195d-44c6-8213-e8510fa4372c", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": null, "links": [{"href": "http://localhost/v1/nodes/931f39c8-195d-44c6-8213-e8510fa4372c", "rel": "self"}, {"href": "http://localhost/nodes/931f39c8-195d-44c6-8213-e8510fa4372c", "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=931f39c8-195d-44c6-8213-e8510fa4372c"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_allow [0.051597s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_not_allowed [0.052971s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/6b4fb0e5-c42a-4643-99d3-32fe319f5a08 WITH [{'path': '/instance_uuid', 'op': 'remove'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-c954403a-33a9-4d38-8830-ee06a7aa2d43 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.39 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update node \\\"6b4fb0e5-c42a-4643-99d3-32fe319f5a08\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name [0.035810s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/validate?node=spam WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c366ea1a-e86d-47c4-82bb-8adca2864673 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_empty [0.048723s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name_unsupported [0.033850s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/validate?node=spam WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-70206189-d489-49a7-a8de-222b3017153d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_local_link_connection_none_type [0.043008s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid [0.040429s] ... 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-fe06137d-6d49-4bf0-8158-f2a43fe1cf12 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_010_nodes_get_other_admin [0.151330s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-69c9b686-39d4-4e24-9604-bdedf0ca7f4e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "instance_uuid": "d5f67494-7fae-4223-ab66-7a12b42acba5", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid_using_deprecated_interface [0.035355s] ... 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-1ea5361b-6ba3-4d60-bdce-d68dff416724 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_none [0.046870s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_invalid_uuid_or_name [0.030234s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1234~1234~1234 WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7bdd362b-fcdc-46f4-aecc-ffa416e26fd7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a logical name or UUID but received 1234~1234~1234.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_not_allow [0.040594s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_allow [0.046601s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource [0.072014s] ... 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-3e8688db-c9f8-499f-b462-3013f228f90b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "9736344e-7378-4099-b3d7-f1932bd7afd2", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/9736344e-7378-4099-b3d7-f1932bd7afd2", "rel": "self"}, {"href": "http://localhost/volume/connectors/9736344e-7378-4099-b3d7-f1932bd7afd2", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "1e26ac38-5202-44c9-b2d1-051b0675e142", "connector_id": "test-connector_id-1", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1e26ac38-5202-44c9-b2d1-051b0675e142", "rel": "self"}, {"href": "http://localhost/volume/connectors/1e26ac38-5202-44c9-b2d1-051b0675e142", "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-b1bab08b-fecd-48a3-a9ff-9d33890d68b8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "9736344e-7378-4099-b3d7-f1932bd7afd2", "connector_id": "test-connector_id-0", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/9736344e-7378-4099-b3d7-f1932bd7afd2", "rel": "self"}, {"href": "http://localhost/volume/connectors/9736344e-7378-4099-b3d7-f1932bd7afd2", "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=9736344e-7378-4099-b3d7-f1932bd7afd2"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_011_nodes_detail_get_admin [0.178420s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-eb9f3595-46a0-4ec1-8a9a-924a510e634f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:06.632817+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-07T22:58:06.633830+00:00", "updated_at": "2025-05-07T22:58:06.646612+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": "a8823b92-fa84-497f-8bc3-a7844605b80f", "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": "a8823b92-fa84-497f-8bc3-a7844605b80f", "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-07T22:58:06.681841+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_node.TestListNodes.test_volume_connectors_subresource_node_not_found [0.042137s] ... 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-7a77490a-12b9-41fa-8add-7bf586ce82c2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_not_allow [0.054267s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields [0.311353s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd WITH [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-442b7521-7867-48e7-bb83-c4b5eb5237ef X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e8e49f37-38b0-4a52-b195-0d72d985bdbd", "created_at": "2025-05-07T22:58:06.508533+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/e8e49f37-38b0-4a52-b195-0d72d985bdbd", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/ports", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/states", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/volume", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/volume", "rel": "bookmark"}]} PATCH /v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd WITH [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d6a3cd37-9886-4482-88dc-dbc5eb9ad18a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e8e49f37-38b0-4a52-b195-0d72d985bdbd", "created_at": "2025-05-07T22:58:06.508533+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/e8e49f37-38b0-4a52-b195-0d72d985bdbd", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/ports", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/states", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/volume", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/volume", "rel": "bookmark"}]} PATCH /v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd WITH [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1ba5e859-1b6f-4a9c-ae9d-de7f29f79b87 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e8e49f37-38b0-4a52-b195-0d72d985bdbd", "created_at": "2025-05-07T22:58:06.508533+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/e8e49f37-38b0-4a52-b195-0d72d985bdbd", "rel": "s elf"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/ports", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/states", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/volume", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/volume", "rel": "bookmark"}]} PATCH /v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd WITH [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3cc46d49-a86b-486a-835b-9fb5d23671b8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e8e49f37-38b0-4a52-b195-0d72d985bdbd", "created_at": "2025-05-07T22:58:06.508533+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/e8e49f37-38b0-4a52-b195-0d72d985bdbd", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/ports", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/states", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/volume", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/volume", "rel": "bookmark"}]} PATCH /v1/nodes/ e8e49f37-38b0-4a52-b195-0d72d985bdbd WITH [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0704575d-82cb-4e7f-8a95-b1b5202c49a8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e8e49f37-38b0-4a52-b195-0d72d985bdbd", "created_at": "2025-05-07T22:58:06.508533+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/e8e49f37-38b0-4a52-b195-0d72d985bdbd", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/ports", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/states", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/volume", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/volume", "rel": "bookmark"}]} PATCH /v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd WITH [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0b6b6e20-c598-425d-b2a6-802181387981 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e8e49f37-38b0-4a52-b195-0d72d985bdbd", "created_at": "2025-05-07T22:58:06.508533+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/e8e49f37-38b0-4a52-b195-0d72d985bdbd", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/ports", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/states", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/volume", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/volume", "rel": "bookmark"}]} PATCH /v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd WITH [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-de400f85-d309-4613-a480-596a8048cb94 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e8e49f37-38b0-4a52-b195-0d72d985bdbd", "created_at": "2025-05-07T22:58:06.508533+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/e8e49f37-38b0-4a52-b195-0d72d985bdbd", "rel": "self"}, {"href" : "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/ports", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/states", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/volume", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/volume", "rel": "bookmark"}]} PATCH /v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd WITH [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-886240b0-3ae0-4825-b88d-b9f5a2dbe2da X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e8e49f37-38b0-4a52-b195-0d72d985bdbd", "created_at": "2025-05-07T22:58:06.508533+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/e8e49f37-38b0-4a52-b195-0d72d985bdbd", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/ports", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/states", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/volume", "rel": "self"}, {"href": "http://localhost/nodes/e8e49f37-38b0-4a52-b195-0d72d985bdbd/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_noid [0.034990s] ... 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\": \"\"}"} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_allow [0.040356s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource [0.033702s] ... 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-67a69c9a-9fa0-440d-af17-59cdea4eabe4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_not_allow [0.043616s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_invalid_api_version [0.035899s] ... 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-86d4bb9e-f425-4426-956a-7ecaaae95e8a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.31 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields_bad_version [0.082768s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/aebd74b3-42f1-4c83-a70d-f8f97326641b WITH [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a4d03b3d-0e82-4a2a-a044-4f658b1299c1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH /v1/nodes/aebd74b3-42f1-4c83-a70d-f8f97326641b WITH [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-25294750-8112-4f74-b83c-1f34328e93b9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH /v1/nodes/aebd74b3-42f1-4c83-a70d-f8f97326641b WITH [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-485d6ed5-93f9-4f8f-bf17-7c055f28e5af X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH /v1/nodes/aebd74b3-42f1-4c83-a70d-f8f97326641b WITH [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-349a1e4c-1676-4982-aeb7-d218470823e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH /v1/nodes/aebd74b3-42f1-4c83-a70d-f8f97326641b WITH [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-43e9b962-5c59-4cac-bf5a-9a968eba226d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH /v1/nodes/aebd74b3-42f1-4c83-a70d-f8f97326641b WITH [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-6529f256-9188-45a5-9a9a-2c69340c1731 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH /v1/nodes/aebd74b3-42f1-4c83-a70d-f8f97326641b WITH [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-bd1900c4-ec00-45e3-9adb-832b07e26ff2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH /v1/nodes/aebd74b3-42f1-4c83-a70d-f8f97326641b WITH [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c2626474-ede2-4171-ad12-f53580d6b668 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_012_nodes_detail_get_member [0.144879s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e4903ef1-13ed-4cf7-9c42-0796aaf07c83 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_link [0.039903s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-27992339-1e80-472b-b35d-6b4cdbd8b8e7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:06.887918+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__GetPortByAddress.test__get_ports_by_address [0.042375s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__GetPortsCollection.test__get_ports_collection [0.038513s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_lessee [0.090922s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/61d1073b-8b10-4220-b562-9b4abacb0052 WITH [{'path': '/lessee', 'value': 'new-project', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-16b5605f-5fa5-47a1-81b9-1d46cf6e9a1b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"uuid": "61d1073b-8b10-4220-b562-9b4abacb0052", "created_at": "2025-05-07T22:58:06.902318+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/61d1073b-8b10-4220-b562-9b4abacb0052", "rel": "self"}, {"href": "http://localhost/nodes/61d1073b-8b10-4220-b562-9b4abacb0052", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/61d1073b-8b10-4220-b562-9b4abacb0052/ports", "rel": "self"}, {"href": "http://localhost/nodes/61d1073b-8b10-4220-b562-9b4abacb0052/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/61d1073b-8b10-4220-b562-9b4abacb0052/states", "rel": "self"}, {"href": "http://localhost/nodes/61d1073b-8b10-4220-b562-9b4abacb0052/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/61d1073b-8b10-4220-b562-9b4abacb0052/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/61d1073b-8b10-4220-b562-9b4abacb0052/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/61d1073b-8b10-4220-b562-9b4abacb0052/volume", "rel": "self"}, {"href": "http://localhost/nodes/61d1073b-8b10-4220-b562-9b4abacb0052/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource [0.070199s] ... 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-7e16e999-f113-4356-85c5-c4d7087a2194 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "6b4b2e5b-6d90-4ac9-b017-1f404bb3cb24", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/6b4b2e5b-6d90-4ac9-b017-1f404bb3cb24", "rel": "self"}, {"href": "http://localhost/volume/targets/6b4b2e5b-6d90-4ac9-b017-1f404bb3cb24", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "e832526a-1847-4d63-a6a7-a2fb4007591c", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/e832526a-1847-4d63-a6a7-a2fb4007591c", "rel": "self"}, {"href": "http://localhost/volume/targets/e832526a-1847-4d63-a6a7-a2fb4007591c", "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-6da9390a-66df-48f7-adbd-efe0ed5ef21e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "6b4b2e5b-6d90-4ac9-b017-1f404bb3cb24", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/6b4b2e5b-6d90-4ac9-b017-1f404bb3cb24", "rel": "self"}, {"href": "http://localhost/volume/targets/6b4b2e5b-6d90-4ac9-b017-1f404bb3cb24", "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=6b4b2e5b-6d90-4ac9-b017-1f404bb3cb24"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_lessee_old_api [0.044412s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/bf894db5-f622-4f28-8a20-60aa47d32a6d WITH [{'path': '/lessee', 'value': 'new-project', 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d7c617f3-3540-43f3-ab4e-4c1871b1951a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.64 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_node_not_found [0.035347s] ... 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-224edf00-3931-47da-8d19-3ddb8dab5dbd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_bad_invalid_agent_status [0.074514s] ... 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-79faa9f3-1851-4efc-99f0-20488161d05d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Agent status is invalid. Valid states are start,end,error.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_noid [0.039821s] ... 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\": \"\"}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_013_nodes_detail_get_observer [0.176114s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bb93763b-bafc-42f6-b81a-38af1ee994ba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:06.961875+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-07T22:58:06.963720+00:00", "updated_at": "2025-05-07T22:58:06.975911+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": "753c57ed-bc60-40c9-b919-3f3de4b48960", "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": "753c57ed-bc60-40c9-b919-3f3de4b48960", "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-07T22:58:07.008905+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", " rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data [0.100323s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/30c27cf6-1f84-45b8-9587-3cd59d8c4381 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-e67e5c74-c705-4a98-99a6-d3e6c59b4459 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.66 {"uuid": "30c27cf6-1f84-45b8-9587-3cd59d8c4381", "created_at": "2025-05-07T22:58:07.035028+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/30c27cf6-1f84-45b8-9587-3cd59d8c4381", "rel": "self"}, {"href": "http://localhost/nodes/30c27cf6-1f84-45b8-9587-3cd59d8c4381", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/30c27cf6-1f84-45b8-9587-3cd59d8c4381/ports", "rel": "self"}, {"href": "http://localhost/nodes/30c27cf6-1f84-45b8-9587-3cd59d8c4381/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/30c27cf6-1f84-45b8-9587 -3cd59d8c4381/states", "rel": "self"}, {"href": "http://localhost/nodes/30c27cf6-1f84-45b8-9587-3cd59d8c4381/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/30c27cf6-1f84-45b8-9587-3cd59d8c4381/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/30c27cf6-1f84-45b8-9587-3cd59d8c4381/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/30c27cf6-1f84-45b8-9587-3cd59d8c4381/volume", "rel": "self"}, {"href": "http://localhost/nodes/30c27cf6-1f84-45b8-9587-3cd59d8c4381/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeFirmwareComponent.test_get_all_firmware_components [0.047552s] ... 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-20f26270-01e2-4cb1-89c0-5c754aef2002 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.86 {"firmware": [{"created_at": "2025-05-07T22:58:07.084472+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-07T22:58:07.083618+00:00", "updated_at": null, "component": "bmc", "initial_version": "v1.0.0", "current_version": "v1.0.0", "last_version_flashed": null}]} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_heartbeat_rejects_different_callback_url [0.075391s] ... 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-8d57715d-823c-42aa-9822-955af3d0c190 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Detected change in ramdisk provided \\\"callback_url\\\"\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeFirmwareComponent.test_wrong_version_get_all_firmware_components_old_version [0.036993s] ... 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\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_custom [0.078133s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/5d68fff8-51c9-4504-9faf-6c7aeb408423 WITH [{'path': '/network_data', 'value': {'cat': 'meow'}, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a1b28814-64f5-441f-bec9-3c58397c69c0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.66 {"uuid": "5d68fff8-51c9-4504-9faf-6c7aeb408423", "created_at": "2025-05-07T22:58:07.141165+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/5d68fff8-51c9-4504-9faf-6c7aeb408423", "rel": "self"}, {"href": "http://localhost/nodes/5d68fff8-51c9-4504-9faf-6c7aeb408423", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5d68fff8-51c9-4504-9faf-6c7aeb408423/ports", "rel": "self"}, {"href": "http://localhost/nodes/5d68fff8-51c9-4504-9faf-6c7aeb408423/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5d68fff8-51c9-4504-9faf-6c7aeb408423/states", "rel": "self"}, {"href": "http://localhost/nodes/5d68fff8-51c9-4504-9faf-6c7aeb408423/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5d68fff8-51c9-4504-9faf-6c7aeb408423/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5d68fff8-51c9-4504-9faf-6c7aeb408423/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5d68fff8-51c9-4504-9faf-6c7aeb408423/volume", "rel": "self"}, {"href": "http://localhost/nodes/5d68fff8-51c9-4504-9faf-6c7aeb408423/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_014_nodes_node_ident_get_admin [0.115792s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-326a7c37-e787-4b27-b721-7df5b07c32a8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:07.136990+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_old_api [0.051919s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/049849cd-69b1-4f75-ae24-a13e683a4759 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-37ad2f65-d916-4485-9a15-8fb641645078 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.62 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeInventory.test_get_inventory [0.093584s] ... 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-3568e4c8-f289-410e-961d-e78e1e0a86e3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.81 {"inventory": {"cpu": {"count": 1, "model_name": "qemu64", "architecture": "x86_64"}}, "plugin_data": {"disks": [{"name": "/dev/vda"}]}} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_015_nodes_node_ident_get_member [0.080343s] ... 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-8f7fd4a4-9bc9-4a24-a1dc-67b7871acc34 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_data_wrong_format [0.066491s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/d5b77efa-1eb8-4b7a-8ea5-95ec5953a66a WITH [{'path': '/network_data', 'value': {'cat': 'meow'}, 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c39c5528-ee5e-403b-855a-baed35d8f5b7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.66 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid network_data: 'links' is a required property \", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeInventory.test_get_inventory_no_inventory [0.071371s] ... 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-c8a557a8-9f6e-40a2-acd8-1e86715b59e5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.81 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node inventory record for node 1 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_016_nodes_node_ident_get_observer [0.077568s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b3d046c4-ef2b-4c88-9918-c263b21caf34 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:07.299759+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_node.TestNodeInventory.test_get_old_version [0.073863s] ... 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.TestPatch.test_update_network_interface [0.092755s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/4e0d660d-c9b0-4046-acab-ab3a40953e0e WITH [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3c19844f-5451-42c9-a5fe-180cbed17618 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "4e0d660d-c9b0-4046-acab-ab3a40953e0e", "created_at": "2025-05-07T22:58:07.340375+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/4e0d660d-c9b0-4046-acab-ab3a40953e0e", "rel": "self"}, {"href": "http://localhost/nodes/4e0d660d-c9b0-4046-acab-ab3a40953e0e", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/4e0d660d-c9b0-4046-acab-ab3a40953e0e/ports", "rel": "self"}, {"href": "http://localhost/nodes/4e0d660d-c9b0-4046-acab-ab3a40953e0e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4e0d660d-c9b0-4046-acab-ab3a40953e0e/states", "rel": "self"}, {"href": "http://localhost/nodes/4e0d660d-c9b0-4046-acab-ab3a40953e0e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4e0d660d-c9b0-4046-acab-ab3a40953e0e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4e0d660d-c9b0-4046-acab-ab3a40953e0e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4e0d660d-c9b0-4046-acab-ab3a40953e0e/volume", "rel": "self"}, {"href": "http://localhost/nodes/4e0d660d-c9b0-4046-acab-ab3a40953e0e/volume", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface_old_api [0.047870s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/6573b1bc-e938-4f1b-9aa8-23dd5718f515 WITH [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-8e2a5047-c781-4338-8058-4cca40c6adc6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_017_nodes_node_ident_patch_admin [0.115025s] ... 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-6261229d-26ab-474d-a033-64e33c7231dd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok [0.095425s] ... 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-cdd323de-081a-4122-91b0-b1abe9055088 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:07.467092+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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_018_nodes_node_ident_patch_member [0.073781s] ... 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-646ee2c0-3723-41ce-822c-e977ddbb9615 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardPatch.test_node_add_shard [0.154383s] ... 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-a2e5fe64-79e2-4693-8420-8ee242df27f4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:07.432601+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_heartbeat_rejects_file_url [0.442031s] ... 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-b0ca05a2-3fd0-4e40-9cb2-a5ee5ceff872 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"An issue with the supplied \\\"callback_url\\\" has been detected.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_019_nodes_node_ident_patch_observer [0.067400s] ... 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-0737a270-3469-4b14-a8d8-0a25423e8977 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_node_not_found [0.053684s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/6b237dfb-7ee2-4cfb-aefd-c34948de75a6 WITH {'callback_url': 'https://url'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b9264386-f439-4168-a2c5-6e5648f13829 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 6b237dfb-7ee2-4cfb-aefd-c34948de75a6 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestNodeShardPatch.test_node_add_shard_fail_wrong_version [0.069509s] ... 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-14ff58c5-72fa-4542-bfa8-6d1f97d8ef66 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name [0.094506s] ... 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-84120984-8b65-4c91-88b7-a4acecea9e79 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:07.560398+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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_020_nodes_node_ident_delete_admin [0.075239s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-320835a4-428a-4bd1-b470-f05925f83754 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok [0.071504s] ... 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-e57d3fb3-71ea-4210-8f70-bc25bad17b94 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name_with_json [0.091363s] ... 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-3736805a-c38b-49bc-a3a5-2842519fafbf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:07.657527+00:00", "updated_at": "2013-12-03T06:20:41.184720+00:00", "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": "node-57.1", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_cleanhold [0.103213s] ... 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-20176fd7-373d-4ebf-8fc4-13bbf6147df0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.85 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_021_nodes_node_ident_delete_member [0.070284s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-63e0ac02-a498-4d68-9a32-70d8e1660488 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_status_and_status [0.069276s] ... 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-ac1ec0a5-79bd-45e1-8b7b-f8d72445dd3f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner [0.093184s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/e6db9345-2f5d-43ad-99cd-356396c629f8 WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7f4313bd-4a51-4c1b-baa5-3949b41d1199 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"uuid": "e6db9345-2f5d-43ad-99cd-356396c629f8", "created_at": "2025-05-07T22:58:07.765975+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/e6db9345-2f5d-43ad-99cd-356396c629f8", "rel": "self"}, {"href": "http://localhost/nodes/e6db9345-2f5d-43ad-99cd-356396c629f8", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e6db9345-2f5d-43ad-99cd-356396c629f8/ports", "rel": "self"}, {"href": "http://localhost/nodes/e6db9345-2f5d-43ad-99cd-356396c629f8/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e6db9345-2f5d-43ad-99cd-356396c629f8/states", "rel": "self"}, {"href": "http://localhost/nodes/e6db9345-2f5d-43ad-99cd-356396c629f8/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e6db9345-2f5d-43ad-99cd-356396c629f8/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e6db9345-2f5d-43ad-99cd-356396c629f8/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e6db9345-2f5d-43ad-99cd-356396c629f8/volume", "rel": "self"}, {"href": "http://localhost/nodes/e6db9345-2f5d-43ad-99cd-356396c629f8/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_token [0.064327s] ... 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-f8ca5a44-3470-4624-aee4-f5a75d0328ca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_022_nodes_node_ident_delete_observer [0.075340s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d1b4acf4-b6fc-42bd-962e-e24ba95e3131 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_cleanwait [0.092841s] ... 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-b0302b3a-18b4-4f47-bd47-d7f11bc5bf18 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.13 {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_verify_ca [0.063754s] ... 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-46f8b798-3c76-4faa-894b-781d0376c28b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_023_nodes_validate_get_admin [0.075655s] ... 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-61d5071b-4441-4e14-95ee-63a4a894429a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_allocation [0.097242s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/8cd50fc0-4d60-4854-b404-c135c049c200 WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-71e87783-0585-4938-8886-346093c96044 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"uuid": "8cd50fc0-4d60-4854-b404-c135c049c200", "created_at": "2025-05-07T22:58:07.861191+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/8cd50fc0-4d60-4854-b404-c135c049c200", "rel": "self"}, {"href": "http://localhost/nodes/8cd50fc0-4d60-4854-b404-c135c049c200", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/8cd50fc0-4d60-4854-b404-c135c049c200/ports", "rel": "self"}, {"href": "http://localhost/nodes/8cd50fc0-4d60-4854-b404-c135c049c200/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8cd50fc0-4d60-4854-b404-c135c049c200/states", "rel": "self"}, {"href": "http://localhost/nodes/8cd50fc0-4d60-4854-b404-c135c049c200/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8cd50fc0-4d60-4854-b404-c135c049c200/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8cd50fc0-4d60-4854-b404-c135c049c200/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8cd50fc0-4d60-4854-b404-c135c049c200/volume", "rel": "self"}, {"href": "http://localhost/nodes/8cd50fc0-4d60-4854-b404-c135c049c200/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_deployhold [0.089835s] ... 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-5153d3c4-1c38-4744-aa01-c8b730dce2e7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.85 {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_version [0.062067s] ... 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-79331b93-0072-4476-9337-88e7e8fdd636 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_allocation_owned [0.055692s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/b7ca86b5-f594-43aa-ba89-ac4b9894cf40 WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-224745fe-93b6-4962-bca9-18456efff893 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update owner of node \\\"b7ca86b5-f594-43aa-ba89-ac4b9894cf40\\\" while it is allocated to an allocation with an owner.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_024_nodes_validate_get_member [0.071660s] ... 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-f2011b94-2910-4828-ae54-b6b4014ef321 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_invalid_state [0.086440s] ... 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-60776437-29be-4c4d-82d3-8dbeec45a81a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.13 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"abort\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"cleaning\\\".\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_old_api [0.047794s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/4229a69c-9408-4fbc-8b7d-791cf09cd53d WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c3cc7b0a-7a32-4019-8dc8-81c943a7406b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_by_name [0.070866s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/test.1 WITH {'callback_url': 'https://url', 'agent_token': 'token'} GOT Response: 202 Accepted Openstack-Request-Id: req-22ceb521-1bd3-476d-9cef-e1c03867f556 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_025_nodes_validate_get_observer [0.073345s] ... 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-de7a0c25-b8c0-4ec1-afcd-0038a49d4fcc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:validate\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_for_anaconda [0.060641s] ... 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-56a5372c-da91-4692-b7af-c0980f7b4fe7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_active_fails [0.087952s] ... 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-4c59071d-4f99-46ac-817f-f160a0f2d709 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"adopt\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"active\\\".\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_provisioned [0.098801s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/febd8828-ba12-456a-a9f4-a32888563c9f WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-65223592-b604-4428-bd06-448157fc9d29 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"uuid": "febd8828-ba12-456a-a9f4-a32888563c9f", "created_at": "2025-05-07T22:58:08.060967+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/febd8828-ba12-456a-a9f4-a32888563c9f", "rel": "self"}, {"href": "http://localhost/nodes/febd8828-ba12-456a-a9f4-a32888563c9f", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/febd8828-ba12-456a-a9f4-a32888563c9f/ports", "rel": "self"}, {"href": "http://localhost/nodes/febd8828-ba12-456a-a9f4-a32888563c9f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/febd8828-ba12-456a-a9f4-a32888563c9f/states", "rel": "self"}, {"href": "http://localhost/nodes/febd8828-ba12-456a-a9f4-a32888563c9f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/febd8828-ba12-456a-a9f4-a32888563c9f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/febd8828-ba12-456a-a9f4-a32888563c9f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/febd8828-ba12-456a-a9f4-a32888563c9f/volume", "rel": "self"}, {"href": "http://localhost/nodes/febd8828-ba12-456a-a9f4-a32888563c9f/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_026_nodes_maintenance_put_admin [0.074520s] ... 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-a06a0190-3eb3-4780-b610-56fbfbda122f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_with_json [0.071911s] ... 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-d0ffa01b-7340-459e-a0e8-5b8cb0e7a102 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_provisioned_forbidden [0.055791s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/6f595e3b-ef17-472b-9068-6d01b4486a9b WITH [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-21e6fc04-8f12-4e93-880d-713eedf930fc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update owner of node \\\"6f595e3b-ef17-472b-9068-6d01b4486a9b\\\" while it is in state \\\"active\\\".\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_adoptfail [0.079696s] ... 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-9bbd4699-f18d-47f8-809f-72b33b29593d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_027_nodes_maintenance_put_member [0.083161s] ... 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-12bfe552-9d9b-4664-9985-277a723bad8c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_verify_ca_error [0.059176s] ... 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-205db986-a8b8-4155-8fea-02d84da94479 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.67 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field \\\"agent_verify_ca\\\" not recognised in this version\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected [0.084000s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/d8de35ef-b4d5-4aa1-a713-f848f9c82a05 WITH [{'path': '/protected', 'value': True, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-700bee92-b714-4a20-b3dd-bcc03fb249ba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "d8de35ef-b4d5-4aa1-a713-f848f9c82a05", "created_at": "2025-05-07T22:58:08.211801+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/d8de35ef-b4d5-4aa1-a713-f848f9c82a05", "rel": "self"}, {"href": "http://localhost/nodes/d8de35ef-b4d5-4aa1-a713-f848f9c82a05", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d8de35ef-b4d5-4aa1-a713-f848f9c82a05/ports", "rel": "self"}, {"href": "http://localhost/nodes/d8de35ef-b4d5-4aa1-a713-f848f9c82a05/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d8de35ef-b4d5-4aa1-a713-f848f9c82a05/states", "rel": "self"}, {"href": "http://localhost/nodes/d8de35ef-b4d5-4aa1-a713-f848f9c82a05/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d8de35ef-b4d5-4aa1-a713-f848f9c82a05/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d8de35ef-b4d5-4aa1-a713-f848f9c82a05/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d8de35ef-b4d5-4aa1-a713-f848f9c82a05/volume", "rel": "self"}, {"href": "http://localhost/nodes/d8de35ef-b4d5-4aa1-a713-f848f9c82a05/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_version_error [0.055642s] ... 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-9478a1f4-b5bc-4895-a13d-f141c527dd09 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.35 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field \\\"agent_version\\\" not recognised\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_manage [0.090597s] ... 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-b64d1fd5-627b-48ee-a611-d0b72c1ad87e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_028_nodes_maintenance_put_observer [0.082558s] ... 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-cf4b9428-41bc-4d44-a670-bc2c0c80c1e9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_maintenance\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_old_api [0.050725s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/2496a041-2505-466f-875b-07be8c38dcf9 WITH [{'path': '/protected', 'value': True, 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-97996fab-efd4-452f-b188-57c76d7a42bd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_agent_status_error [0.052000s] ... 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-2282ce3f-49d2-40f2-b4f2-142f134e40f0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.71 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fields \\\"agent_status\\\" and \\\"agent_status_message\\\" not recognised.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_raises_error_before_1_17 [0.073986s] ... 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-a5f441fa-97c9-4b6b-b3f1-b580320e2264 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.16 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_029_nodes_maintenance_delete_admin [0.074629s] ... 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-d5448032-4db2-4539-9b1c-11ec193c5a52 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_version [0.052934s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/c7d9df41-d0f3-4886-99a0-b2dcaf4bf1b3 WITH {'callback_url': 'https://url'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f8773e12-1f32-4aea-ad00-dd7de5a92805 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_reason [0.090132s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/284991e0-8870-4991-b13e-9786997e0e33 WITH [{'path': '/protected_reason', 'value': 'reason!', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a21f9877-23bd-424d-81c3-7cff4d9fa8b7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "284991e0-8870-4991-b13e-9786997e0e33", "created_at": "2025-05-07T22:58:08.348578+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/284991e0-8870-4991-b13e-9786997e0e33", "rel": "self"}, {"href": "http://localhost/nodes/284991e0-8870-4991-b13e-9786997e0e33", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/284991e0-8870-4991-b13e-9786997e0e33/ports", "rel": "self"}, {"href": "http://localhost/nodes/284991e0-8870-4991-b13e-9786997e0e33/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/284991e0-8870-4991-b13e-9786997e0e33/states", "rel": "self"}, {"href": "http://localhost/nodes/284991e0-8870-4991-b13e-9786997e0e33/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/284991e0-8870-4991-b13e-9786997e0e33/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/284991e0-8870-4991-b13e-9786997e0e33/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/284991e0-8870-4991-b13e-9786997e0e33/volume", "rel": "self"}, {"href": "http://localhost/nodes/284991e0-8870-4991-b13e-9786997e0e33/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_030_nodes_maintenance_delete_member [0.068813s] ... 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-ad05b334-09b3-4e9b-ae8c-6ef4d9623e0d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_bad_invalid_agent_status [0.077539s] ... 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-16bcb318-49bc-476f-b49f-0028c131c688 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Agent status is invalid. Valid states are start,end,error.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adopting_state [0.121518s] ... 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-278ce6ce-d42a-499c-b34b-a1460a1d966f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopting\\\".\", \"debuginfo\": null}"} PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rebuild'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-92e79132-3779-45a4-9530-62f59150f419 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"rebuild\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopting\\\".\", \"debuginfo\": null}"} PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'deleted'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-dbcba3ea-ca06-46d3-a137-f5931f4569cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopting\\\".\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_remove [0.088318s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/cf3349fa-5e95-4ce2-89d0-c994ef087d32 WITH [{'op': 'remove', 'path': '/protected'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1032c76d-92ae-446c-9cbc-2cbf18d3ce1f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "cf3349fa-5e95-4ce2-89d0-c994ef087d32", "created_at": "2025-05-07T22:58:08.438917+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/cf3349fa-5e95-4ce2-89d0-c994ef087d32", "rel": "self"}, {"href": "http://localhost/nodes/cf3349fa-5e95-4ce2-89d0-c994ef087d32", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/cf3349fa-5e95-4ce2-89d0-c994ef087d32/ports", "rel": "self"}, {"href": "http://localhost/nodes/cf3349fa-5e95-4ce2-89d0-c994ef087d32/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/cf3349fa-5e95-4ce2-89d0-c994ef087d32/states", "rel": "self"}, {"href": "http://localhost/nodes/cf3349fa-5e95-4ce2-89d0-c994ef087d32/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/cf3349fa-5e95-4ce2-89d0-c994ef087d32/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/cf3349fa-5e95-4ce2-89d0-c994ef087d32/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/cf3349fa-5e95-4ce2-89d0-c994ef087d32/volume", "rel": "self"}, {"href": "http://localhost/nodes/cf3349fa-5e95-4ce2-89d0-c994ef087d32/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_031_nodes_maintenance_delete_observer [0.070494s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-25df207f-c5b6-46de-951a-48f0118a0283 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:clear_maintenance\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_heartbeat_rejects_different_callback_url [0.073854s] ... 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-0bff7af2-ad4a-4f6e-bb6d-17505a539d9a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Detected change in ramdisk provided \\\"callback_url\\\"\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_032_nodes_management_boot_device_put_admin [0.067638s] ... 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-db60d783-b863-4371-ac57-42a9b3ca31a3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_string [0.086180s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/7f6e087d-dbed-4b47-a0d7-c08f524d55ac WITH [{'path': '/protected', 'value': 'True', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-665b170b-27a8-4f8d-aec7-842ea55a78b5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "7f6e087d-dbed-4b47-a0d7-c08f524d55ac", "created_at": "2025-05-07T22:58:08.529643+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/7f6e087d-dbed-4b47-a0d7-c08f524d55ac", "rel": "self"}, {"href": "http://localhost/nodes/7f6e087d-dbed-4b47-a0d7-c08f524d55ac", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/7f6e087d-dbed-4b47-a0d7-c08f524d55ac/ports", "rel": "self"}, {"href": "http://localhost/nodes/7f6e087d-dbed-4b47-a0d7-c08f524d55ac/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7f6e087d-dbed-4b47-a0d7-c08f524d55ac/states", "rel": "self"}, {"href": "http://localhost/nodes/7f6e087d-dbed-4b47-a0d7-c08f524d55ac/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7f6e087d-dbed-4b47-a0d7-c08f524d55ac/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7f6e087d-dbed-4b47-a0d7-c08f524d55ac/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7f6e087d-dbed-4b47-a0d7-c08f524d55ac/volume", "rel": "self"}, {"href": "http://localhost/nodes/7f6e087d-dbed-4b47-a0d7-c08f524d55ac/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_heartbeat_rejects_file_url [0.071836s] ... 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-f916e129-d651-40d3-8ad8-cd2e95b82f4b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"An issue with the supplied \\\"callback_url\\\" has been detected.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adoption_failed_state [0.114503s] ... 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-20662e9f-30fb-45d8-9545-5207a3282a2f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopt failed\\\".\", \"debuginfo\": null}"} PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rebuild'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b0e8e0dd-6f7b-4d00-8f92-d44272d4a6d4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"rebuild\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopt failed\\\".\", \"debuginfo\": null}"} PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'deleted'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-33849c5d-2f5b-458b-b092-16c042116b22 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopt failed\\\".\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_033_nodes_management_boot_device_put_member [0.070473s] ... 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-4ff06136-cac3-4f0a-9e43-9a650cba3836 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_node_not_found [0.057430s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/635449d9-e7c6-4d78-b3b0-af7f82ae43fc WITH {'callback_url': 'https://url'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d2744648-3d8f-4e91-a73b-3f8d2bfa6279 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 635449d9-e7c6-4d78-b3b0-af7f82ae43fc could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_string_invalid [0.087681s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/7752247d-8901-442c-a428-71e5d2818647 WITH [{'path': '/protected', 'value': 'YeahNahGood', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b2327229-4d83-4da5-9ff4-ed43555e3566 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid protected: Unrecognized value 'YeahNahGood', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_034_nodes_management_boot_device_put_observer [0.073078s] ... 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-8bdc85d5-727e-4fd4-b82e-79ce5547a564 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_managed_state [0.117610s] ... 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-570fdb1f-fc35-44da-8c83-47fb6c11c728 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"manageable\\\".\", \"debuginfo\": null}"} PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'active'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-49e9b157-dac8-4786-b1a0-907cc6c18a56 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"manageable\\\".\", \"debuginfo\": null}"} PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'active'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e9a4d1a1-bab4-4b7d-83e4-568e64de7690 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"manageable\\\".\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok [0.082400s] ... 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-2d6335e8-526c-4d5e-82d5-4d3fafd525ad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_035_nodes_management_boot_device_get_admin [0.073018s] ... 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-38a9c0a0-db9e-4ee2-aa12-38637b201fff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_bios_older_soft_ver [0.081648s] ... 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-9a6ca43b-ac0a-447b-9dc9-32e02fad961b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"This endpoint is supported starting with the API version 1.76\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_status_and_status [0.062988s] ... 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-4cba8889-1262-425c-9c32-12abe93d42fb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_036_nodes_management_boot_device_get_member [0.068642s] ... 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-7967ec7f-fd5a-426d-9ae4-8b2b13634cf9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_token [0.072008s] ... 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-3535273c-d730-425d-ab16-86d407a39894 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_bios_valid_soft_ver [0.072115s] ... 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-d4cc4374-29b1-441e-9d15-4c97436ecb22 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_037_nodes_management_boot_device_get_observer [0.076587s] ... 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-51aad7ff-89a3-4bb6-971d-0ab041e573f5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_with_reason [0.291237s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/801b5cc2-e713-4244-a28c-371e8dcc4d87 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-418a1543-aebf-4513-9309-5f326467b42a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "801b5cc2-e713-4244-a28c-371e8dcc4d87", "created_at": "2025-05-07T22:58:08.903455+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/801b5cc2-e713-4244-a28c-371e8dcc4d87", "rel": "self"}, {"href": "http://localhost/nodes/801b5cc2-e713-4244-a28c-371e8dcc4d87", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/801b5cc2-e713-4244-a28c-371e8dcc4d87/ports", "rel": "self"}, {"href": "http://localhost/nodes/801b5cc2-e713-4244-a28c-371e8dcc4d87/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/801b5cc2-e713-4244-a28c-371e8dcc4d87/states", "rel": "self"}, {"href": "http://localhost/nodes/801b5cc2-e713-4244-a28c-371e8dcc4d87/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/801b5cc2-e713-4244-a28c-371e8dcc4d87/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/801b5cc2-e713-4244-a28c-371e8dcc4d87/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/801b5cc2-e713-4244-a28c-371e8dcc4d87/volume", "rel": "self"}, {"href": "http://localhost/nodes/801b5cc2-e713-4244-a28c-371e8dcc4d87/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_verify_ca [0.072825s] ... 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-21a57935-5e7f-4346-8484-e711d1476f94 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_038_nodes_management_boot_device_supported_get_admin [0.073137s] ... 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-4c4f6f69-e8c8-4e5d-b602-3862dc21d25c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_version [0.072294s] ... 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-6ace97e0-4e91-4675-bdab-5b5d897e9e48 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class [0.092379s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/06b05cb7-b911-4abc-8df2-785b8776ac92 WITH [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-718c9139-7c86-4fca-8ce2-d264c41ccaba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "06b05cb7-b911-4abc-8df2-785b8776ac92", "created_at": "2025-05-07T22:58:08.994405+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/06b05cb7-b911-4abc-8df2-785b8776ac92", "rel": "self"}, {"href": "http://localhost/nodes/06b05cb7-b911-4abc-8df2-785b8776ac92", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/06b05cb7-b911-4abc-8df2-785b8776ac92/ports", "rel": "self"}, {"href": "http://localhost/nodes/06b05cb7-b911-4abc-8df2-785b8776ac92/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/06b05cb7-b911-4abc-8df2-785b8776ac92/states", "rel": "self"}, {"href": "http://localhost/nodes/06b05cb7-b911-4abc-8df2-785b8776ac92/states", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_039_nodes_management_boot_device_supported_get_member [0.071175s] ... 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-15bad7e7-b37c-4252-9d3b-4a518329e8d0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_by_name [0.079457s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/test.1 WITH {'callback_url': 'https://url', 'agent_token': 'token'} GOT Response: 202 Accepted Openstack-Request-Id: req-c1271dc4-0652-4b02-bb52-4e4371c9b7f9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_max_length [0.091337s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/65192c43-67a8-4c72-81ad-48100b2b5039 WITH [{'path': '/resource_class', 'value': 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bff8e982-1764-4c97-b7cb-555b16942d51 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "65192c43-67a8-4c72-81ad-48100b2b5039", "created_at": "2025-05-07T22:58:09.090341+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/65192c43-67a8-4c72-81ad-48100b2b5039", "rel": "self"}, {"href": "http://localhost/nodes/65192c43-67a8-4c72-81ad-48100b2b5039", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/65192c43-67a8-4c72-81ad-48100b2b5039/ports", "rel": "self"}, {"href": "http://localhost/nodes/65192c43-67a8-4c72-81ad-48100b2b5039/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/65192c43-67a8-4c72-81ad-48100b2b5039/states", "rel": "self"}, {"href": "http://localhost/nodes/65192c43-67a8-4c72-81ad-48100b2b5039/states", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_040_nodes_management_boot_device_supported_get_observer [0.071736s] ... 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-7b282b06-679c-4eb5-a94e-2a925cda00bd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_old_api [0.049392s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/9a4fa91d-749b-4f7f-9db1-573de414b368 WITH [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d492b463-e298-45dd-8a16-97f4fd480cb3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.20 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_for_anaconda [0.081604s] ... 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-e695871b-e0a4-46ae-8da1-17b1fbf877b3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_041_nodes_management_inject_nmi_put_admin [0.069938s] ... 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-a91b334e-b2e6-43d6-a3b3-9f8a0806d39f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_with_json [0.074081s] ... 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-929af267-29b4-448f-98ad-e7fd85e28586 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_too_long [0.087041s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/83b9382c-5062-4d34-a00c-b8850109f2ef WITH [{'path': '/resource_class', 'value': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9e46dae8-d8e7-47dd-b918-cb6e38ad11d7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff' is too long\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_042_nodes_management_inject_nmi_put_member [0.073607s] ... 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-9750cf50-446a-411b-8383-cb5e7dba8704 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_API_agent_verify_ca_error [0.067551s] ... 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-ff949a6e-c008-4c55-83d2-f0c2adcdc802 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.67 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field \\\"agent_verify_ca\\\" not recognised in this version\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_invalid_request [0.470145s] ... 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-457dc3f4-31a2-45f3-b0eb-65b78656d733 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid boot mode unsupported-efi requested for node. Allowed boot modes are: bios, uefi\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired [0.089777s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/e2c8ab5e-fe16-4dbf-8885-93133b436eac WITH [{'path': '/retired', 'value': True, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-00a84b1a-ea75-4d99-a593-c54e8c37f004 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "e2c8ab5e-fe16-4dbf-8885-93133b436eac", "created_at": "2025-05-07T22:58:09.316782+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/e2c8ab5e-fe16-4dbf-8885-93133b436eac", "rel": "self"}, {"href": "http://localhost/nodes/e2c8ab5e-fe16-4dbf-8885-93133b436eac", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e2c8ab5e-fe16-4dbf-8885-93133b436eac/ports", "rel": "self"}, {"href": "http://localhost/nodes/e2c8ab5e-fe16-4dbf-8885-93133b436eac/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e2c8ab5e-fe16-4dbf-8885-93133b436eac/states", "rel": "self"}, {"href": "http://localhost/nodes/e2c8ab5e-fe16-4dbf-8885-93133b436eac/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e2c8ab5e-fe16-4dbf-8885-93133b436eac/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e2c8ab5e-fe16-4dbf-8885-93133b436eac/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e2c8ab5e-fe16-4dbf-8885-93133b436eac/volume", "rel": "self"}, {"href": "http://localhost/nodes/e2c8ab5e-fe16-4dbf-8885-93133b436eac/volume", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_043_nodes_management_inject_nmi_put_observer [0.078132s] ... 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-76d55c81-9e42-4482-afcb-a6c64346c9bf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_API_agent_version_error [0.062044s] ... 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-3c18db08-07e8-49cd-bb83-845787c47d5c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.35 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field \\\"agent_version\\\" not recognised\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_old_api [0.049521s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/654ef06b-f60f-490c-bb9e-01de5d14b475 WITH [{'path': '/retired', 'value': True, 'op': 'replace'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-41c15445-6a04-41bb-8f2f-21fc336c24a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_044_nodes_states_get_admin [0.073035s] ... 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-1bc77234-cecd-4dd7-a7d1-76956db74cf5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_uefi_older_soft_ver [0.075071s] ... 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-ca4e56ba-951d-46b4-b33d-63445d690dd1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"This endpoint is supported starting with the API version 1.76\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_api_agent_status_error [0.060326s] ... 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-f76607bf-dc24-44a1-83eb-958b1c4d15da X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.71 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fields \\\"agent_status\\\" and \\\"agent_status_message\\\" not recognised.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_reason [0.091479s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/924ddcf4-69f7-4f8a-b26c-0011d80ced22 WITH [{'path': '/retired_reason', 'value': 'a better reason', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f59ced1a-cf68-470e-b8b6-47b7cc15d888 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "924ddcf4-69f7-4f8a-b26c-0011d80ced22", "created_at": "2025-05-07T22:58:09.458381+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/924ddcf4-69f7-4f8a-b26c-0011d80ced22", "rel": "self"}, {"href": "http://localhost/nodes/924ddcf4-69f7-4f8a-b26c-0011d80ced22", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/924ddcf4-69f7-4f8a-b26c-0011d80ced22/ports", "rel": "self"}, {"href": "http://localhost/nodes/924ddcf4-69f7-4f8a-b26c-0011d80ced22/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/924ddcf4-69f7-4f8a-b26c-0011d80ced22/states", "rel": "self"}, {"href": "http://localhost/nodes/924ddcf4-69f7-4f8a-b26c-0011d80ced22/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/924ddcf4-69f7-4f8a-b26c-0011d80ced22/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/924ddcf4-69f7-4f8a-b26c-0011d80ced22/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/924ddcf4-69f7-4f8a-b26c-0011d80ced22/volume", "rel": "self"}, {"href": "http://localhost/nodes/924ddcf4-69f7-4f8a-b26c-0011d80ced22/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_api_version [0.051411s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/heartbeat/c5832262-d298-43e6-94a6-543006a8f611 WITH {'callback_url': 'https://url'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-19aa4f82-f0a4-4745-abce-d8bd4a8f7cf2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_045_nodes_states_get_member [0.072660s] ... 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-d1d9b24d-9c55-410c-b5f9-da46a1aa8987 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_uefi_valid_soft_ver [0.081541s] ... 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-a7ed13ba-d07d-4074-a4fe-2045d9a9dbc6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_046_nodes_states_get_observer [0.070429s] ... 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-2eb3ad12-9b7f-4b61-8d5f-a0854c647acc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_remove [0.095023s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/e81467e3-1aee-4f74-91b4-b3786be45c69 WITH [{'op': 'remove', 'path': '/retired'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-330f6d61-8923-405f-9383-8b6f27a8a532 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "e81467e3-1aee-4f74-91b4-b3786be45c69", "created_at": "2025-05-07T22:58:09.549765+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/e81467e3-1aee-4f74-91b4-b3786be45c69", "rel": "self"}, {"href": "http://localhost/nodes/e81467e3-1aee-4f74-91b4-b3786be45c69", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e81467e3-1aee-4f74-91b4-b3786be45c69/ports", "rel": "self"}, {"href": "http://localhost/nodes/e81467e3-1aee-4f74-91b4-b3786be45c69/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e81467e3-1aee-4f74-91b4-b3786be45c69/states", "rel": "self"}, {"href": "http://localhost/nodes/e81467e3-1aee-4f74-91b4-b3786be45c69/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e81467e3-1aee-4f74-91b4-b3786be45c69/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e81467e3-1aee-4f74-91b4-b3786be45c69/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e81467e3-1aee-4f74-91b4-b3786be45c69/volume", "rel": "self"}, {"href": "http://localhost/nodes/e81467e3-1aee-4f74-91b4-b3786be45c69/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_fast_deploy_lookup [0.112734s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=9895ab7a-c670-4fc3-967c-20bb8b78094c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-60192283-bca5-4fa1-ab54-b45531a89575 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "9895ab7a-c670-4fc3-967c-20bb8b78094c", "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/9895ab7a-c670-4fc3-967c-20bb8b78094c", "rel": "self"}, {"href": "http://localhost/nodes/9895ab7a-c670-4fc3-967c-20bb8b78094c", "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=9895ab7a-c670-4fc3-967c-20bb8b78094c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2396a373-ca33-4e35-9be1-55088e817ceb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "9895ab7a-c670-4fc3-967c-20bb8b78094c", "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/9895ab7a-c670-4fc3-967c-20bb8b78094c", "rel": "self"}, {"href": "http://localhost/nodes/9895ab7a-c670-4fc3-967c-20bb8b78094c", "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=9895ab7a-c670-4fc3-967c-20bb8b78094c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c8c4f94b-17a7-4526-9907-0ec7b76372d0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "9895ab7a-c670-4fc3-967c-20bb8b78094c", "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/9895ab7a-c670-4fc3-967c-20bb8b78094c", "rel": "self"}, {"href": "http://localhost/nodes/9895ab7a-c670-4fc3-967c-20bb8b78094c", "rel": "bookmark"}]}, "config": { "metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "abcxyz", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean [0.092664s] ... 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-5c331e1f-40fa-4de1-acb1-854637bb4410 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_047_nodes_states_power_put_admin [0.066983s] ... 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-3018cbb9-6642-473a-be0e-f819a7d9a897 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_with_reason [0.092368s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/251d4521-ddfa-4c7e-9bf8-280fc8411253 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-e86e0955-ba2b-4c92-b1e6-c162083fb27c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "251d4521-ddfa-4c7e-9bf8-280fc8411253", "created_at": "2025-05-07T22:58:09.646011+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/251d4521-ddfa-4c7e-9bf8-280fc8411253", "rel": "self"}, {"href": "http://localhost/nodes/251d4521-ddfa-4c7e-9bf8-280fc8411253", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/251d4521-ddfa-4c7e-9bf8-280fc8411253/ports", "rel": "self"}, {"href": "http://localhost/nodes/251d4521-ddfa-4c7e-9bf8-280fc8411253/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/251d4521-ddfa-4c7e-9bf8-280fc8411253/states", "rel": "self"}, {"href": "http://localhost/nodes/251d4521-ddfa-4c7e-9bf8-280fc8411253/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/251d4521-ddfa-4c7e-9bf8-280fc8411253/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/251d4521-ddfa-4c7e-9bf8-280fc8411253/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/251d4521-ddfa-4c7e-9bf8-280fc8411253/volume", "rel": "self"}, {"href": "http://localhost/nodes/251d4521-ddfa-4c7e-9bf8-280fc8411253/volume", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_addresses [0.099513s] ... 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-b72494d5-ebf7-4809-a8f9-41307076d453 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "12c379e9-169e-47ec-af1d-3e46084bcc9a", "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/12c379e9-169e-47ec-af1d-3e46084bcc9a", "rel": "self"}, {"href": "http://localhost/nodes/12c379e9-169e-47ec-af1d-3e46084bcc9a", "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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_048_nodes_states_power_put_member [0.069183s] ... 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-3c5e1d61-b03c-421b-a027-8c7b804fec69 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_check_steps_fail [0.095007s] ... 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-7258a2dd-0515-4f3d-b13a-bdd46a6fa94f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"bad\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_state [0.043207s] ... 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-ff78f99c-2322-489f-8204-a99949fada04 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: Additional properties are not allowed ('power_state' was unexpected)\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_049_nodes_states_power_put_observer [0.069862s] ... 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-6ae0c024-902c-48b8-945b-5d4d62499774 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_only_uuid [0.079931s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?node_uuid=0afd76a1-92da-4eb3-b913-b9a5a3483cdb WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d9b1f3e7-1c3e-4e15-b558-446b370fb0d9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "0afd76a1-92da-4eb3-b913-b9a5a3483cdb", "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/0afd76a1-92da-4eb3-b913-b9a5a3483cdb", "rel": "self"}, {"href": "http://localhost/nodes/0afd76a1-92da-4eb3-b913-b9a5a3483cdb", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "xyzabc", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface [0.091704s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/f546d868-2212-4d92-a6d6-321246606959 WITH [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-097ac564-7db8-4e45-b09b-3faec52fee6c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f546d868-2212-4d92-a6d6-321246606959", "created_at": "2025-05-07T22:58:09.782559+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/f546d868-2212-4d92-a6d6-321246606959", "rel": "self"}, {"href": "http://localhost/nodes/f546d868-2212-4d92-a6d6-321246606959", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f546d868-2212-4d92-a6d6-321246606959/ports", "rel": "self"}, {"href": "http://localhost/nodes/f546d868-2212-4d92-a6d6-321246606959/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f546d868-2212-4d92-a6d6-321246606959/states", "rel": "self"}, {"href": "http://localhost/nodes/f546d868-2212-4d92-a6d6-321246606959/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f546d868-2212-4d92-a6d6-321246606959/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f546d868-2212-4d92-a6d6-321246606959/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f546d868-2212-4d92-a6d6-321246606959/volume", "rel": "self"}, {"href": "http://localhost/nodes/f546d868-2212-4d92-a6d6-321246606959/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_disable_ramdisk [0.086377s] ... 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-89b6152b-d2c6-4328-ad23-3f63ae9802d4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.70 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface_old_api [0.045378s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/795a6dd1-7b8a-48a4-8d0a-4a33f122cc14 WITH [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d95e7aba-0fa7-4464-9c29-b34a45d2d239 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_uuid [0.074757s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=0a9994e6-88c0-4f5e-8f37-4b6d701e71b3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1994558e-a8ab-402b-bd1a-28efcf072877 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "0a9994e6-88c0-4f5e-8f37-4b6d701e71b3", "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/0a9994e6-88c0-4f5e-8f37-4b6d701e71b3", "rel": "self"}, {"href": "http://localhost/nodes/0a9994e6-88c0-4f5e-8f37-4b6d701e71b3", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "this_thing_on?", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_disable_ramdisk_old_api [0.083508s] ... 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-1f527c79-cbd7-4ea5-836c-fa71bdb4ebcd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.69 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"disable_ramdisk is not acceptable in this API version\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_traits [0.046238s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/nodes/4dbfa7f1-6c75-4852-bdad-ba318b7a0243 WITH [{'path': '/traits', 'value': ['CUSTOM_1'], 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b6bc18ff-9d6f-4877-9fcd-575ab19e291e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /traits. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, disable_power_off, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, shard, storage_interface, vendor_interface, parent_node, firmware_interface\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_ignore_malformed_address [0.091689s] ... 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-38e7d9f7-8273-4656-b2f5-5cae8583a799 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "e55e0168-9017-468e-a35d-c438c4759fc0", "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/e55e0168-9017-468e-a35d-c438c4759fc0", "rel": "self"}, {"href": "http://localhost/nodes/e55e0168-9017-468e-a35d-c438c4759fc0", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "123456", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_with_reset_interfaces [0.087355s] ... 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-d3bc71c2-a2dd-4d45-a5ad-5db1f6cc4f01 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:09.951826+00:00", "updated_at": "2013-12-03T06:20:41.184720+00:00", "bios_interface": null, "boot_interface": null, "clean_step": {}, "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": "node-57.1", "network_interface": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_no_cleansteps [0.087043s] ... 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-905fb73d-8709-4d83-832e-9070ac1f9054 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"clean_steps\\\" is required when setting target provision state to clean\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_invalid_input_addresses [0.061385s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=meow1 WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-564136f1-e696-45b3-b724-5d3453b82e07 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"At least one of 'addresses' and 'node_uuid' parameters is required\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_050_nodes_states_boot_mode_put_admin [0.290681s] ... 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-3d7e65c7-cb55-463d-9473-aa53f80c1227 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node [0.084623s] ... 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-17ec8561-e567-471a-bb5b-ef57aa0fec15 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-675f1830-c79f-4803-a06d-992ba0fe0e58 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_invalid_input_node_uuid [0.066869s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?node_uuid=meow1 WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-145c799a-a9c3-4156-9e57-70c69ba08fd1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for node_uuid: meow1\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_with_runbooks [0.098063s] ... 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-51decab0-9901-459e-be05-30f15e2bde4d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_051_nodes_states_boot_mode_put_member [0.074618s] ... 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-0e58fa95-6a1c-4830-a3bd-374a357c3f52 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_no_restrict_lookup [0.071187s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=a4560ef4-420a-4809-a3bd-2083e09f5289 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5685db75-ffff-4e11-a022-327307478cbf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "a4560ef4-420a-4809-a3bd-2083e09f5289", "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/a4560ef4-420a-4809-a3bd-2083e09f5289", "rel": "self"}, {"href": "http://localhost/nodes/a4560ef4-420a-4809-a3bd-2083e09f5289", "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.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean [0.088663s] ... 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-b54c8590-99d0-4e05-b3a2-dfb06f5d5443 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:10.169406+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-22d66adc-57d2-4e46-a47d-328282646873 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:10.169406+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_node.TestPut.test_clean_with_runbooks_unapproved [0.095998s] ... 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-73108d60-63c4-45a5-a5c9-b18056fa84d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"This runbook has not been approved for use on this node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123. Please ask an administrator to add it to your node traits.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_052_nodes_states_boot_mode_put_observer [0.072813s] ... 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-d583bfcc-c14a-489b-962f-b07d784fb708 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean_old_api_version [0.060902s] ... 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-de169c23-95df-4f23-939f-901913ab8379 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_not_found [0.080572s] ... 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-16f29ca5-b6cd-454d-9fb1-31ecb83eb67f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_053_nodes_states_secure_boot_put_admin [0.084015s] ... 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-8ec6146a-7d68-4707-806b-e544863c1f77 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi [0.104140s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi WITH {} GOT Response: 204 No Content Openstack-Request-Id: req-01687971-ca47-4fd9-917b-e9f713d72e8b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_nothing_provided [0.085282s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9d382441-9f05-47e9-830b-0a68330f6471 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"At least one of 'addresses' and 'node_uuid' parameters is required\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_always_in_response [0.137444s] ... 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-7d2d6903-a426-4fba-b4fd-cea10cb6a995 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4dd3072f-6d71-4f65-9ed5-a81e39a3dd3d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '23a812f6-eced-4b65-9cdf-1c4aede65f6f', '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/23a812f6-eced-4b65-9cdf-1c4aede65f6f Openstack-Request-Id: req-34704e27-1101-4d10-a7bb-196afb4fd1a6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "23a812f6-eced-4b65-9cdf-1c4aede65f6f", "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/23a812f6-eced-4b65-9cdf-1c4aede65f6f", "rel": "self"}, {"href": "http://localhost/nodes/23a812f6-eced-4b65-9cdf-1c4aede65f6f", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/23a812f6-eced-4b65-9cdf-1c4aede65f6f/ports", "rel": "self"}, {"href": "http://localhost/nodes/23a812f6-eced-4b65-9cdf-1c4aede65f6f/ports", "rel": "bookmark"}]} GET /v1/nodes/23a812f6-eced-4b65-9cdf-1c4aede65f6f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-59008929-471d-458c-8776-e37793120066 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "23a812f6-eced-4b65-9cdf-1c4aede65f6f", "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/23a812f6-eced-4b65-9cdf-1c4aede65f6f", "rel": "self"}, {"href": "http://localhost/nodes/23a812f6-eced-4b65-9cdf-1c4aede65f6f", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/23a812f6-eced-4b65-9cdf-1c4aede65f6f/ports", "rel": "self"}, {"href": "http://localhost/nodes/23a812f6-eced-4b65-9cdf-1c4aede65f6f/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_old_api_version [0.037521s] ... 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-c6d9fa2f-72de-401c-aa28-008b5c8f8b4f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_054_nodes_states_secure_boot_put_member [0.068192s] ... 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-38ae51a9-c73d-4fbb-b0a8-d0e68728b31e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_allowed [0.087300s] ... 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-64060b99-e051-44ed-84f2-9a188118f71e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_restrict_lookup [0.038247s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=472048f2-fa32-4e6c-8ada-01a0f9067aa5 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6d7a2823-050a-4f04-82a4-38941a6e043e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_chassis_uuid_not_found [0.062660s] ... 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-b1d6f0bd-ae63-44a0-b9a5-fab945a06bf9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_055_nodes_states_secure_boot_put_observer [0.069976s] ... 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-5dcb3ade-25e8-4422-9d61-da275c3e6fef X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_fast_deploy_lookup [0.058964s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=49f797ef-f13b-4829-8957-fa3bf75a5515 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-45356a7b-3e13-43d1-b059-f95a23f94ccf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "49f797ef-f13b-4829-8957-fa3bf75a5515", "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/49f797ef-f13b-4829-8957-fa3bf75a5515", "rel": "self"}, {"href": "http://localhost/nodes/49f797ef-f13b-4829-8957-fa3bf75a5515", "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=49f797ef-f13b-4829-8957-fa3bf75a5515 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-94546530-2eae-42eb-9c07-c66bc8cef39f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "49f797ef-f13b-4829-8957-fa3bf75a5515", "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/49f797ef-f13b-4829-8957-fa3bf75a5515", "rel": "self"}, {"href": "http://localhost/nodes/49f797ef-f13b-4829-8957-fa3bf75a5515", "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=49f797ef-f13b-4829-8957-fa3bf75a5515 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9cf6bf6f-a8c3-42b1-9643-14d6d2c5a438 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "49f797ef-f13b-4829-8957-fa3bf75a5515", "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/49f797ef-f13b-4829-8957-fa3bf75a5515", "rel": "self"}, {"href": "http://localho st/nodes/49f797ef-f13b-4829-8957-fa3bf75a5515", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "abcxyz", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_supported [0.096673s] ... 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-54d60953-7c3c-45f9-ab86-e65be72533bd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_enroll [0.081467s] ... 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-352c9bfd-ff12-4f2b-8eed-f3568e25f2c2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.11 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:10.518301+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-e7c2617d-29c0-4ebd-9e01-6edfb7d72203 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:10.518301+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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_056_nodes_states_provision_put_admin [0.067517s] ... 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-3eee3a79-1d93-4854-8db0-ad120fc6ea84 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_addresses [0.045936s] ... 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-adbadbae-cadf-4a0d-b888-1cc259d08479 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "f2632ac5-dff7-46f0-ab5e-2b8282c6b923", "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/f2632ac5-dff7-46f0-ab5e-2b8282c6b923", "rel": "self"}, {"href": "http://localhost/nodes/f2632ac5-dff7-46f0-ab5e-2b8282c6b923", "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_ramdisk.TestLookupScopedRBAC.test_found_by_only_uuid [0.044039s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?node_uuid=3c4a5b63-fda4-4482-b54d-b454283bffd1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-31c21a9a-b997-4efd-8efa-b486222b8ceb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "3c4a5b63-fda4-4482-b54d-b454283bffd1", "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/3c4a5b63-fda4-4482-b54d-b454283bffd1", "rel": "self"}, {"href": "http://localhost/nodes/3c4a5b63-fda4-4482-b54d-b454283bffd1", "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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_057_nodes_states_provision_put_member [0.071940s] ... 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-c41404dd-2903-4dd5-8497-e4158f743bb0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_none [0.089286s] ... 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-babb8a42-1371-4e60-8efa-0838d59ae680 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:10.600015+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-88556047-5cd1-45e7-b296-2587eef4be09 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:10.600015+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-7081cf5b-0212-4943-9256-ff0c4bf06c99 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:10.600015+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_found_by_uuid [0.041752s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=b73f21f9-c194-4314-9db2-e9bb558a91e5 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-56ffa347-361f-48eb-8a8c-e5ee8b790884 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "b73f21f9-c194-4314-9db2-e9bb558a91e5", "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/b73f21f9-c194-4314-9db2-e9bb558a91e5", "rel": "self"}, {"href": "http://localhost/nodes/b73f21f9-c194-4314-9db2-e9bb558a91e5", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "statsd", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": "this_thing_on?", "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_accepted_after_1_41 [0.105751s] ... 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-3b0b251c-74b4-4faa-930c-aae74829b1a9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.41 {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_ignore_malformed_address [0.045935s] ... 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-3fbdbcca-afec-4e68-9a67-3e28a5f21f26 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "cc0a4994-ac96-45f5-ab1a-c5933304f7d5", "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/cc0a4994-ac96-45f5-ab1a-c5933304f7d5", "rel": "self"}, {"href": "http://localhost/nodes/cc0a4994-ac96-45f5-ab1a-c5933304f7d5", "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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_058_nodes_states_provision_put_observer [0.075788s] ... 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-ca1ccb56-b160-4c8f-9348-7cd2fb82e2fb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_invalid_input_addresses [0.036713s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=meow1 WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-297215e4-579c-436b-a224-8ab9dd8b13d0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"At least one of 'addresses' and 'node_uuid' parameters is required\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description [0.092791s] ... 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-c4d4f6d1-f710-40ad-8073-cd2a4f096df1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:10.697562+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-2a0e0135-3d87-4ee0-acb4-4ea466b01e14 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:10.697562+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_node.TestPut.test_inspect_abort_raises_before_1_41 [0.096156s] ... 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-77534ce7-d296-4a7a-a4fa-247f91274da5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_invalid_input_node_uuid [0.033158s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?node_uuid=meow1 WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b6439736-8e4c-40e7-90f6-3dbe77406bbd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for node_uuid: meow1\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_059_nodes_states_raid_put_admin [0.076071s] ... 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-a493f580-8647-40ab-9f14-c5455c749747 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description_oversize [0.063342s] ... 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-0b203ba5-c3c6-4485-8446-4c022e605ce5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: '1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781 234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed' is too long\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_no_restrict_lookup [0.039735s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=9d274794-48a2-49f3-bc47-7f080da96867 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-31d26657-8469-424b-9c1d-35431014b70a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "9d274794-48a2-49f3-bc47-7f080da96867", "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/9d274794-48a2-49f3-bc47-7f080da96867", "rel": "self"}, {"href": "http://localhost/nodes/9d274794-48a2-49f3-bc47-7f080da96867", "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_ramdisk.TestLookupScopedRBAC.test_not_found [0.039216s] ... 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-896d09da-16b8-4abd-87e0-2e0f837711aa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_060_nodes_states_raid_put_member [0.070666s] ... 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-d48afbfd-5645-4020-b4a1-2861f81023e2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_already_in_progress [0.102536s] ... 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-21b639c4-ee1b-4c51-a71e-57ff4393b1b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_nothing_provided [0.033763s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3c1ac9c6-04d8-4f3e-9b61-7d2d862e7e4b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"At least one of 'addresses' and 'node_uuid' parameters is required\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_disable_power_off [0.084442s] ... 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-24608132-5212-483c-a69f-26e9c0726c1a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:10.847137+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-372d7e4d-2a7a-4aa3-8494-09f45889539d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:10.847137+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_ramdisk.TestLookupScopedRBAC.test_old_api_version [0.056263s] ... 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-676d5d06-3d85-44e9-815e-3be6de142771 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_disable_power_off_old_api_version [0.062975s] ... 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-28e2fd7c-0bc2-42e1-9600-f94ddd032a09 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.94 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_061_nodes_states_raid_put_observer [0.103638s] ... 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-cc38ddeb-5b4b-4db2-ab1c-00ae19e88969 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_missing_parameter_value [0.102535s] ... 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-e97ccc2c-a471-4460-aa22-b648906656c5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.6 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Failed to validate inspection or power info.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_doesnt_contain_id [0.081727s] ... 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-b5da86f7-4389-416c-ae13-c94e35866545 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:10.996842+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-ca77cc73-b411-4ea6-98d9-c70d1112b00c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:10.996842+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_status_code [0.091832s] ... 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-ecf3cf0c-1354-4e96-95f4-ff72d118114a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.6 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Failed to validate inspection or power info.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_062_nodes_states_console_get_admin [0.154113s] ... 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-c9c49f7a-93d8-4ded-82bc-2c9c2c23a567 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_default_conductor_group [0.080342s] ... 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-976b604a-4a18-47f9-93c4-8de99460ff1f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:11.076149+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-945933f1-f6b8-4a7b-98c6-f6c40b627d2d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:11.076149+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_adoptfail [0.106206s] ... 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-4d3e0524-3453-460e-82c2-ce40ddb29aab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_available [0.090372s] ... 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-8d129722-d9e8-4e77-ac80-5ebd18033eba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.4 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_063_nodes_states_console_get_member [0.150409s] ... 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-7d3f6dcd-3867-4135-853a-7bbe3f23e306 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_network_interface [0.168190s] ... 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-fea92a00-dbaf-4384-bc2f-729aa261d07d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.20 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": "neutron", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "reservation": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-19e8a21e-1aa3-445c-a775-68d21ab22bb4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.20 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": "neutron", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "reservation": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_resource_class [0.073904s] ... 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-d64964be-34b2-4945-9cdc-c01ef9cc0258 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:11.322703+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-14dcf101-ba0a-432c-b34f-d17327106d9d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:11.322703+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_node.TestPut.test_power_change_when_being_cleaned [0.125168s] ... 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-091dd81c-ea51-424c-bf6f-eb47fd30efc4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"power off\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"cleaning\\\".\", \"debuginfo\": null}"} PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power WITH {'target': 'power off'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6c6354d2-4326-46b0-9132-3ff44bdbd519 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"power off\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"clean wait\\\".\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_064_nodes_states_console_get_observer [0.144782s] ... 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-d8fb8ecf-a6ca-4e8f-91fa-919d831fcaeb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_restrict_lookup [0.459393s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=81431bf2-a9f6-441d-9947-9327ebae69d0 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8fd08302-aa88-4aa9-bbfe-4f6fd510dbff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_storage_interface [0.084248s] ... 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-02edb64b-a22c-45bc-a0e8-e7ffb770a3f5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "cinder", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1d879b39-3acc-458a-9178-7a409de9bc80 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "boot_interface": "fake", "clean_step": {}, "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_interface": "flat", "power_in terface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "reservation": null, "resource_class": null, "storage_interface": "cinder", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_invalid_state_request [0.084489s] ... 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-33cd066c-db38-45e6-9956-ca1101fcfbf6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"not-supported\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"None\\\".\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestDelete.test_delete_by_name [0.072051s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/CUSTOM_DT1 GOT Response: 204 No Content Openstack-Request-Id: req-473edc56-68bb-43b1-b810-c183ecb99ed6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name [0.081998s] ... 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-70981d53-402e-4179-a2d2-af0456f95bbc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_065_nodes_states_console_put_admin [0.137809s] ... 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-81862e04-3d68-4be5-b2c1-2ebdc7f95852 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestDelete.test_delete_by_name_non_existent [0.055004s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/blah GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4962b8c5-5a0d-4f04-9af0-d5faca15839c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Runbook blah could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_fails_on_disabled_bios_boot_mode [0.127209s] ... 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-809e1a70-c085-4e61-b41c-fc28bcc00a1c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'bios' boot mode is not allowed for provisioning operation.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name_unsupported [0.076927s] ... 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-f102b2c0-7259-4fd8-89f8-eb86be58ece8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestDelete.test_delete_by_uuid [0.076322s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/0e5649da-a92e-47d8-9335-e93abf225bb3 GOT Response: 204 No Content Openstack-Request-Id: req-2ebdaf76-8823-4c51-b3d3-4eb032b61dbf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_fails_on_disabled_uefi_boot_mode [0.114139s] ... 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-0f303887-d13d-489e-9917-3cec8d0d1dae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'uefi' boot mode is not allowed for provisioning operation.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestDelete.test_delete_invalid_api_version [0.054622s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/29cb38cb-640d-43e8-b09d-0e8c56cafcd5 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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_066_nodes_states_console_put_member [0.139923s] ... 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-cc073c32-269f-41c8-9b66-0142d08be879 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_off_with_disable_power_off [0.084576s] ... 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-af42411b-c87d-4d55-8583-e0952bbc5f42 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Failed to set node power state to power off.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_fails_on_invalid_boot_mode [0.038979s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestDelete.test_delete_old_api_version [0.047454s] ... 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\"}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_bios_interface [0.062704s] ... 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-01a4e144-3961-4f2f-96eb-887ad66826c7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following interface in the 'ironic.hardware.interfaces.bios' entrypoint: foo. Valid interfaces are ['fake', 'no-bios'].\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_invalid_soft_ver [0.081713s] ... 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-a9b40fc1-30a3-4cff-834a-4bc19a061610 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_067_nodes_states_console_put_observer [0.128294s] ... 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-6efbbb26-6d4d-40ae-a461-43a447d16e1f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_chassis [0.059128s] ... 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-d429ba08-f255-4ffe-b555-5d3813bb50e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: 0 is not of type 'string', 'null'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_add_multi [0.112801s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/e8ad5814-88dd-4b9f-a816-e05c76318305 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-1d049e98-1710-4ac8-ba37-2dc22c726001 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e8ad5814-88dd-4b9f-a816-e05c76318305", "created_at": "2025-05-07T22:58:11.770698+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/e8ad5814-88dd-4b9f-a816-e05c76318305", "rel": "self"}, {"href": "http://localhost/runbooks/e8ad5814-88dd-4b9f-a816-e05c76318305", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "order": 2}, {"interface": "raid", "step": "create_configuration1", "args": {}, "order": 2}, {"interface": "raid", "step": "create_configuration2", "args": {}, "order": 2}, {"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_no_ver [0.091337s] ... 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-c5a85122-8010-41b8-a0a9-fdda0c20ea38 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_driver [0.059630s] ... 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-fb0aaad0-e72c-4ac1-a35b-73c5e51e4cd2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_add_root_non_existent [0.063114s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/eec5b26c-2b10-4791-b066-807c67a0805a WITH [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-99d0a451-43b0-4be0-a028-379544b5ce1e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: extra, name, steps, description, public, owner\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_068_nodes_vendor_passthru_methods_get_admin [0.138105s] ... 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-eddd2d9f-9424-480f-9cef-cda86d39eca3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_network_interface [0.061901s] ... 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-8335de27-fcc2-4494-a0e4-90d9cb059d66 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following interface in the 'ironic.hardware.interfaces.network' entrypoint: foo. Valid interfaces are ['flat', 'neutron', 'noop'].\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_valid_soft_ver [0.092915s] ... 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-ba222969-0525-4dfd-ad0e-509cfc3d8d4c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_add_too_high_index_step_fail [0.064291s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/5465523f-ad4e-48e8-990d-0a9e8e91af5e 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-f2a89181-47e2-481b-a1c7-30df9a1277ed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/2', 'op': 'add', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'order': 1}}'. Reason: can't insert outside of list\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_storage_interface [0.066669s] ... 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-4178cb80-81c3-4ff0-ab4d-d8388df74231 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following interface in the 'ironic.hardware.interfaces.storage' entrypoint: foo. Valid interfaces are ['fake', 'noop'].\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_invalid_soft_ver [0.086667s] ... 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-a2964a78-7a58-45b6-bd12-78905cc309b8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_foo [0.069096s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/38a4260a-173e-4ad7-abf7-223359280bb7 WITH [{'path': '/foo', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-38de65b9-8e9b-4c99-b353-d234f01513c0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: extra, name, steps, description, public, owner\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_069_nodes_vendor_passthru_methods_get_member [0.122224s] ... 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-f828db4e-d97d-4597-ae24-51aa42675f8c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_070_nodes_vendor_passthru_methods_get_observer [0.063004s] ... 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-076da608-056e-4f2d-88c8-3772764da6eb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_no_ver [0.085646s] ... 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-e34d95b3-d944-46f8-a148-2c71298818b0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_lessee [0.141855s] ... 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-a88d1510-312b-419c-bb89-faf75ee27017 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:12.116313+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-654c86fc-e564-4d60-bccb-df4c80dbec12 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:12.116313+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_multi [0.107818s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/b47cff76-069e-493b-9a88-2ba011ffac2d WITH [{'path': '/steps/1', 'op': 'remove'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-baa49e72-94fe-4f8d-bbbf-96bce84595db X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b47cff76-069e-493b-9a88-2ba011ffac2d", "created_at": "2025-05-07T22:58:12.104716+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/b47cff76-069e-493b-9a88-2ba011ffac2d", "rel": "self"}, {"href": "http://localhost/runbooks/b47cff76-069e-493b-9a88-2ba011ffac2d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "order": 2}, {"interface": "raid", "step": "create_configuration2", "args": {}, "order": 2}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_071_nodes_vendor_passthru_get_admin [0.061900s] ... 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-16c3c1cd-f05c-41d6-af34-6337410bb4dd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_valid_soft_ver [0.068773s] ... 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-d61f13f9-1481-473a-8966-bdd358da51b3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_name [0.081689s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/5e3b6726-04df-459d-96a1-89aa4dbe5123 WITH [{'path': '/name', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-277af62a-fbd0-4549-a297-8d6253c5158b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'name' is a required property\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_072_nodes_vendor_passthru_get_member [0.066753s] ... 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-fa225f00-ffcb-42dc-8b71-8d2a105dc264 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_invalid_soft_ver [0.046108s] ... 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-c1384953-d1fa-4405-b878-f65be6d8226c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_lessee_old_api_version [0.124180s] ... 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-7f389791-1ccb-42c9-8ae9-3ff4435dbf11 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.64 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_no_ver [0.045235s] ... 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-959aac54-4b04-4e67-bcdb-b16ebd50f745 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_non_existent_property_fail [0.074313s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/78ef2499-7da3-4c9d-9ee8-37cf0ced0df9 WITH [{'path': '/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ed1cfeb8-7384-4406-aa6d-f1f70f5463a6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /non-existent. Only the following can be updated: extra, name, steps, description, public, owner\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_073_nodes_vendor_passthru_get_observer [0.072309s] ... 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-0f5421bf-ff52-427c-b2f7-542bb4490676 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_valid_soft_ver [0.044389s] ... 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-6c52c42d-8769-476d-b4dc-7b44a67476ef X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_non_existent_step_fail [0.061791s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/19abce98-f82b-43d8-8823-2f10e04b4258 WITH [{'path': '/steps/1', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ebae6942-63a6-4433-ad65-ac5fe2ae0f1a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/1', 'op': 'remove'}'. Reason: can't remove a non-existent object '1'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_invalid_soft_ver [0.040903s] ... 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-873b4732-509a-4eba-914e-9472832aa88b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_074_nodes_vendor_passthru_post_admin [0.066603s] ... 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-64536e4c-f73c-48c0-9638-6e44b5e5ce95 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_invalid [0.118598s] ... 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-3087f219-18e9-433c-9ae7-b4701640860e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create node with invalid name ''\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_no_ver [0.044982s] ... 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-41eca406-2c79-45e0-8642-2fae59df771e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_non_existent_step_property_fail [0.075045s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/a7cc1cac-21f2-473d-be53-3d14b315fb82 WITH [{'path': '/steps/0/non-existent', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cf2399a1-3a1b-4e15-9e25-01f8fedaf8cb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/0/non-existent', 'op': 'remove'}'. Reason: can't remove a non-existent object 'non-existent'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_075_nodes_vendor_passthru_post_member [0.074605s] ... 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-013ace00-e83b-48b1-9b02-f08c1e8f6c1a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_valid_soft_ver [0.044789s] ... 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-9dc2070e-4407-4583-8e75-a753dab7d069 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_invalid_soft_ver [0.039836s] ... 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-f1639353-c228-4e6e-9e1a-6c4ba57e6f67 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_not_acceptable [0.125529s] ... 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-005a1e1d-d429-4820-8ff1-86de2ecb4e8d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_076_nodes_vendor_passthru_post_observer [0.066339s] ... 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-7a1b3473-e940-408e-bb37-5da4eb8249e9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_only_step_fail [0.094383s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/113e3e8e-5d3f-4536-8e57-a73c0384515c WITH [{'path': '/steps/0', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-47f493af-066d-435d-84d8-e23c79adaa25 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: [] is too short\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_077_nodes_vendor_passthru_put_admin [0.068179s] ... 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-bcaa8725-3536-4cf2-8d4f-073025c8ab04 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_remove_steps [0.082928s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/9c4a718c-6310-4111-8899-17548771f4ca WITH [{'path': '/steps', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d9711c41-f701-4632-a495-28e848ac3781 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'steps' is a required property\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_078_nodes_vendor_passthru_put_member [0.063485s] ... 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-50fb4db3-b35c-4486-84be-33ab03e63a8d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface [0.170109s] ... 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-1e621cee-1593-4307-a215-542a21d4e139 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:12.668132+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-3a501c91-1c1b-4122-b823-df596e512fb2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:12.668132+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_runbook.TestPatch.test_remove_uuid [0.067311s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/03e13dec-5607-4582-af29-4749b814f41c WITH [{'path': '/uuid', 'op': 'remove'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-317ca3d9-b61f-4e86-b85e-c9b9fae7cc6b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: extra, name, steps, description, public, owner\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_079_nodes_vendor_passthru_put_observer [0.070232s] ... 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-3bc0b0e9-b71e-422b-80bb-12ec030096b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_no_ver [0.266688s] ... 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-00fa4f0c-3636-4f1e-8599-4a67abe04cec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_080_nodes_vendor_passthru_delete_admin [0.066272s] ... 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-84b0dba6-85cf-4026-85b3-75360843dc11 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_duplicate_step [0.103005s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/771900e7-24dd-4b8c-b8f8-8ab0c699b1db 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-46ae389d-335b-493f-ae42-f53a3af210ce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: Duplicate deploy steps. A template cannot have multiple deploy steps with the same interface and step. Duplicates: interface: raid, step: create_configuration.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_valid_soft_ver [0.044336s] ... 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-bd31170f-8a7a-4c92-ae59-76dc0e63765e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_invalid_soft_ver [0.039533s] ... 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-10330963-995c-4ccb-8395-a33900c8d386 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_081_nodes_vendor_passthru_delete_member [0.068589s] ... 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-eb6b0073-d108-4591-974e-12c87ecb116c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_empty_step_list_fail [0.087948s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/fd508705-fb9a-453b-9ce9-d136669e013b WITH [{'path': '/steps', 'op': 'replace', 'value': []}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-935c7e1a-f91e-4184-98aa-ff858445702b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: [] is too short\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_no_ver [0.045564s] ... 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-4f829390-07ed-41f4-b826-bc03174fe70e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_082_nodes_vendor_passthru_delete_observer [0.072200s] ... 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-5b8a8021-ffe3-4ea2-9aa6-5d7e2e216fa4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_valid_soft_ver [0.044490s] ... 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-1bc4dbab-13ef-4317-a0be-0bd5ecf3b952 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_invalid_name_none [0.097047s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/e302292d-aa89-4627-aab7-3b4909087aa2 WITH [{'path': '/name', 'op': 'replace', 'value': None}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5bcb91be-edfc-4731-8293-497649878d90 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: None is not of type 'string'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_with_disable_power_off [0.050025s] ... 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-1231356f-4682-4386-a557-bf98c1e0df19 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Failed to set node power state to soft power off.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_083_nodes_traits_get_admin [0.069804s] ... 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-9ec5e614-4249-4194-b680-5482b38d11ab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"traits": ["trait1"]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provide_from_manage [0.048219s] ... 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-76e9fc01-bcaa-47dd-973e-e5437a20ef25 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.4 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_084_nodes_traits_get_member [0.063676s] ... 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-aa2c8e50-587d-4109-af5f-970d0fea00a3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_invalid_name_too_long [0.092139s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/2ec17154-a7c6-415f-9a5d-d6503d964442 WITH [{'path': '/name', 'op': 'replace', 'value': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-02a784e1-5381-4962-bf29-f7606a9cec0c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' is too long\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_progress [0.051657s] ... 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-ff080e87-479f-462d-90e4-89f8b6ac2f56 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_085_nodes_traits_get_observer [0.069399s] ... 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-372d6370-0867-4e68-9e1c-40fac583e660 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"traits": ["trait1"]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_state [0.050314s] ... 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-89d0558d-b6f7-4e08-9728-beaa92da0347 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"active\\\".\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_invalid_step_interface_fail [0.077421s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/d0a7867c-6a86-46cd-9096-fc2409c7ffc0 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-e87f6d9f-4a13-47d9-a431-950182d18e09 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'foo' is not one of ['vendor', 'power', 'management', 'firmware', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface_old_api_version [0.494772s] ... 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-1b094d60-5d0f-4004-8408-e6a20153c57c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name [0.044832s] ... 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-fd271e93-150f-4ce3-ae69-1dc8321be03b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_086_nodes_traits_put_admin [0.072353s] ... 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-35a9ab53-7c4c-4ccb-bca5-bce181da45c7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name_unsupported [0.041899s] ... 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-1f0f76e0-344f-481e-bbbd-b8c2d98e48b5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_multi [0.105197s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/ff6b8c14-4e62-4b39-b63e-18bfcf0fbd6a 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-8638190b-ed07-49e5-8f0e-3ead90c814c0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ff6b8c14-4e62-4b39-b63e-18bfcf0fbd6a", "created_at": "2025-05-07T22:58:13.210858+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/ff6b8c14-4e62-4b39-b63e-18bfcf0fbd6a", "rel": "self"}, {"href": "http://localhost/runbooks/ff6b8c14-4e62-4b39-b63e-18bfcf0fbd6a", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "order": 3}, {"interface": "raid", "step": "create_configuration1", "args": {}, "order": 3}, {"interface": "raid", "step": "create_configuration2", "args": {}, "order": 3}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_087_nodes_traits_put_member [0.070972s] ... 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-06f93c52-5473-48bb-89e8-f647e9a754c6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_deploy [0.048800s] ... 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-0361caec-597f-47a8-b010-acea9fbfc481 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.73 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_chassis_uuid [0.135678s] ... 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-b0cb00e3-c715-4d77-90e7-e92561891686 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:13.315530+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_node.TestPut.test_provision_invalid_state_request [0.041307s] ... 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-793a5910-3574-4848-a8ea-828a2f71e7ba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"not-supported\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"available\\\".\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_088_nodes_traits_put_observer [0.072787s] ... 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-c4e69e25-4f69-4c8a-9993-29ecaea7e593 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_name_already_exist [0.096237s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/30991128-abc2-468d-932c-8dcb5ad77d57 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-4f6456cc-d9d7-46d7-bb01-625c6b363b6c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A runbook with UUID 30991128-abc2-468d-932c-8dcb5ad77d57 already exists.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_locked_with_correct_state [0.053264s] ... 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-740874bb-a9e3-4b1e-82dc-c70557e515e5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node is locked by host , please retry after the current operation is completed.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_089_nodes_traits_delete_admin [0.072185s] ... 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-b6b05dda-9c0a-43e9-b82e-2ee717fd4782 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_non_existent_step_fail [0.075996s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/ad37edd6-5111-4de7-a5b7-fbb09d79ff7f 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-782f6255-a2d1-446a-9834-6afabfac5f17 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/steps/1', 'op': 'replace', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'order': 1}}'. Reason: can't replace outside of list\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_node_in_maintenance_fail [0.055604s] ... 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-c64c7afe-6254-4fc0-9c7f-9bd86fb26075 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The provisioning operation can't be performed on node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 because it's in maintenance mode.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_default_resource_class [0.167346s] ... 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-53a336ad-4325-46bd-ae17-53ea4c10d560 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:13.468755+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-08d7d9e5-5dba-458b-99d6-580de7745ba5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:13.468755+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"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_090_nodes_traits_delete_member [0.062513s] ... 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-e55b1a27-a3b6-4f74-bacc-0aa6914bfb37 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_empty_password [0.049090s] ... 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-b6cbeb55-c8ec-4d91-a9b9-519d3f61ec27 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty \\\"rescue_password\\\" is required when setting target provision state to rescue\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_replace_step_invalid_interface [0.080682s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/a6b69696-65ca-4025-8925-6c5ad851d6bd WITH [{'path': '/steps/0/interface', 'op': 'replace', 'value': 'foo'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-12b99d56-a75d-401f-9adc-7694055f45cb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'foo' is not one of ['vendor', 'power', 'management', 'firmware', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_091_nodes_traits_delete_observer [0.064883s] ... 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-4afc6512-e7a2-41d4-bd55-141956bf9374 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_allowed_states [0.085387s] ... 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-9356475a-a7f7-44b8-8f2c-9bd5a53b170d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rescue', 'rescue_password': 'password'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-e3d19258-3c7a-40bb-bf9b-6f6383dd2da3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rescue', 'rescue_password': 'password'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-dc17252e-3d07-4a21-b592-b520cc9f2e45 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rescue', 'rescue_password': 'password'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-130deaca-2ee4-4a49-a59e-fccfb037a067 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_mandatory_field_driver [0.133664s] ... 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-58dcb941-b296-4f65-9fe8-9d383e4f88c3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: 'driver' is a required property\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_runbook_set_owner_public_system_scope [0.129249s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': '3ea4432f-e555-4ed6-880d-7cdecca39dbc', '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/3ea4432f-e555-4ed6-880d-7cdecca39dbc Openstack-Request-Id: req-021c18fc-96b9-488e-a337-d278b36ec89c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "3ea4432f-e555-4ed6-880d-7cdecca39dbc", "created_at": "2025-05-07T22:58:13.621108+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/3ea4432f-e555-4ed6-880d-7cdecca39dbc", "rel": "self"}, {"href": "http://localhost/runbooks/3ea4432f-e555-4ed6-880d-7cdecca39dbc", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} PATCH /v1/runbooks/3ea4432f-e555-4ed6-880d-7cdecca39dbc 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-aee1ea95-fc13-437b-8d20-66efb6d393bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "3ea4432f-e555-4ed6-880d-7cdecca39dbc", "created_at": "2025-05-07T22:58:13.621108+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/3ea4432f-e555-4ed6-880d-7cdecca39dbc", "rel": "self"}, {"href": "http://localhost/runbooks/3ea4432f-e555-4ed6-880d-7cdecca39dbc", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_092_nodes_traits_trait_put_admin [0.098412s] ... 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-f4849819-70b3-4732-9165-2537566c27f9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_disallowed_states [0.082874s] ... 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-d07303e1-da12-4422-8a77-9a85b09d1bf0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rescue', 'rescue_password': 'password'} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-aaf3df1a-e79c-4d09-9f00-ae9ac818af33 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rescue', 'rescue_password': 'password'} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-2b4c559e-5d49-435e-bc93-a57c4f602deb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'rescue', 'rescue_password': 'password'} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-554fc556-f2de-4a54-97a4-955ac1508399 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_no_password [0.044854s] ... 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-dc32f5d6-78cf-4510-b8f7-3fbc9f15afd4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty \\\"rescue_password\\\" is required when setting target provision state to rescue\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_runbook_set_owner_public_system_scope_fails [0.095696s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': 'fc7de278-9ac7-42c1-8259-b3042ac8787f', '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/fc7de278-9ac7-42c1-8259-b3042ac8787f Openstack-Request-Id: req-7e71d55a-fbc5-46cc-b4ec-59d1a4eef83a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "fc7de278-9ac7-42c1-8259-b3042ac8787f", "created_at": "2025-05-07T22:58:13.734408+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/fc7de278-9ac7-42c1-8259-b3042ac8787f", "rel": "self"}, {"href": "http://localhost/runbooks/fc7de278-9ac7-42c1-8259-b3042ac8787f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} PATCH /v1/runbooks/fc7de278-9ac7-42c1-8259-b3042ac8787f 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-b6257d6d-18b5-4690-ae3d-a6df04084d39 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/owner', 'value': 'projectX', 'op': 'replace'}, {'path': '/public', 'value': True, 'op': 'replace'}]'. Reason: There cannot be an owner for a public runbook\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unexpected_rescue_password [0.045201s] ... 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-cb400958-0f83-4efd-b8dc-c1bcac4badad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"rescue_password\\\" is only valid when setting target provision state to rescue\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner [0.165608s] ... 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-17adbf3c-ae00-4acc-85cf-9df144b9709c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:13.762732+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-cc7e546b-a14f-4fdc-8faf-fae4531502f7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:13.762732+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"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_allowed_states [0.066893s] ... 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-5241afb2-44ae-46a2-be43-e96e98c3b6af X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unrescue'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-0585f346-9dfc-45c8-b580-2fb0132452dd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unrescue'} GOT Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-022db362-298d-429b-8d3f-1cad67aa8515 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_set_new_owner_for_project_owned_runbook [0.111474s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': 'db3c2ef5-1821-4ced-b67e-b4ff81308675', '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/db3c2ef5-1821-4ced-b67e-b4ff81308675 Openstack-Request-Id: req-029cff1e-2bcc-45f3-8249-d2b4d01c5371 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "db3c2ef5-1821-4ced-b67e-b4ff81308675", "created_at": "2025-05-07T22:58:13.829974+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/db3c2ef5-1821-4ced-b67e-b4ff81308675", "rel": "self"}, {"href": "http://localhost/runbooks/db3c2ef5-1821-4ced-b67e-b4ff81308675", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} PATCH /v1/runbooks/db3c2ef5-1821-4ced-b67e-b4ff81308675 WITH [{'path': '/owner', 'value': 'projectY', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d26de748-243c-4d53-9493-4e05cfda85b2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "db3c2ef5-1821-4ced-b67e-b4ff81308675", "created_at": "2025-05-07T22:58:13.829974+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": "projectY", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/db3c2ef5-1821-4ced-b67e-b4ff81308675", "rel": "self"}, {"href": "http://localhost/runbooks/db3c2ef5-1821-4ced-b67e-b4ff81308675", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_old_api_version [0.112391s] ... 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-b978843c-e0b5-4e46-9d36-e6db6383e7e7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_disallowed_states [0.084245s] ... 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-d4b2a55a-5b29-4a4d-9661-89f5bd7a1271 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unrescue'} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-549baf77-745d-4677-a56f-1575664c8b5c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unrescue'} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-d6dff2d7-aec1-40ea-b22c-acc70da24e8e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unrescue'} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-a0a14c1d-8d3b-4ffd-be57-3f3044b062d6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision WITH {'target': 'unrescue'} GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-b1ae2170-af63-4d77-a665-475bb1718cf5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_cleansteps_not_clean [0.041899s] ... 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-727bb6d6-75cd-45ac-93cb-a64165382f8d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.4 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected types , for clean_steps: foo\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_set_owner_system_scope [0.113520s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': '1bdade2f-c6e1-4d1f-9c5e-91dfc7e33fe9', '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/1bdade2f-c6e1-4d1f-9c5e-91dfc7e33fe9 Openstack-Request-Id: req-86e72d5f-1c47-4797-9256-216fb8f35d12 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1bdade2f-c6e1-4d1f-9c5e-91dfc7e33fe9", "created_at": "2025-05-07T22:58:13.944471+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/1bdade2f-c6e1-4d1f-9c5e-91dfc7e33fe9", "rel": "self"}, {"href": "http://localhost/runbooks/1bdade2f-c6e1-4d1f-9c5e-91dfc7e33fe9", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} PATCH /v1/runbooks/1bdade2f-c6e1-4d1f-9c5e-91dfc7e33fe9 WITH [{'path': '/owner', 'value': 'projectX', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f9f3174a-bac0-415b-8e3a-de88eee48741 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1bdade2f-c6e1-4d1f-9c5e-91dfc7e33fe9", "created_at": "2025-05-07T22:58:13.944471+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/1bdade2f-c6e1-4d1f-9c5e-91dfc7e33fe9", "rel": "self"}, {"href": "http://localhost/runbooks/1bdade2f-c6e1-4d1f-9c5e-91dfc7e33fe9", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_configdrive_not_active [0.043871s] ... 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-06d9142c-a013-4b7f-ac25-545f5324192b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"available\\\".\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy [0.041136s] ... 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-afbfa9bc-5d29-48dd-9883-3dfa3652b23d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_093_nodes_traits_trait_put_member [0.385295s] ... 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-1049a943-f40d-4f61-93e5-06a0b9143ec7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_set_owner_system_scope_fails_if_public [0.089596s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': 'ac0b1363-f1e0-4aab-8f81-e5a2659cbd81', '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/ac0b1363-f1e0-4aab-8f81-e5a2659cbd81 Openstack-Request-Id: req-8c9280ad-3953-4397-85b6-13371ec220f6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ac0b1363-f1e0-4aab-8f81-e5a2659cbd81", "created_at": "2025-05-07T22:58:14.059153+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/ac0b1363-f1e0-4aab-8f81-e5a2659cbd81", "rel": "self"}, {"href": "http://localhost/runbooks/ac0b1363-f1e0-4aab-8f81-e5a2659cbd81", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} PATCH /v1/runbooks/ac0b1363-f1e0-4aab-8f81-e5a2659cbd81 WITH [{'path': '/owner', 'value': 'projectX', 'op': 'replace'}] GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-62e40e30-dcbd-4786-8a6b-99a64aa4f596 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/owner', 'value': 'projectX', 'op': 'replace'}]'. Reason: There cannot be an owner for a public runbook\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_recorded_project_scope [0.171010s] ... 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-c035f17b-b33b-4c48-83e0-7bb0ad0eaa57 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:14.046907+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-0dd6cf44-c9b0-4e8e-abc0-9b1bfb67195a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:14.046907+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clean_step" : {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "disable_power_off": false, "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "firmware_interface": "fake", "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": "ravensay", "parent_node": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_after_deployfail [0.050722s] ... 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-98a463a0-9efc-4f5f-9026-7d08726d7cab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_094_nodes_traits_trait_put_observer [0.069668s] ... 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-14d84963-fc9f-44ac-8601-22465d8beb2c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive [0.042461s] ... 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-a2635e28-8682-4b34-a045-405d5d1a19e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_095_nodes_traits_trait_delete_admin [0.059176s] ... 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-930b4d60-73a9-40be-88ac-667703970bf0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict [0.041085s] ... 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-e22ecdc1-6aa9-4b48-a9ff-0d73e6ae1791 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.56 {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_set_project_owned_runbook_public [0.116637s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE1', 'uuid': '60b2adcc-04ac-4078-a30f-4f256c737e22', '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/60b2adcc-04ac-4078-a30f-4f256c737e22 Openstack-Request-Id: req-3734b697-5710-4c2f-80c5-f0bd86eaa3f7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "60b2adcc-04ac-4078-a30f-4f256c737e22", "created_at": "2025-05-07T22:58:14.153450+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/60b2adcc-04ac-4078-a30f-4f256c737e22", "rel": "self"}, {"href": "http://localhost/runbooks/60b2adcc-04ac-4078-a30f-4f256c737e22", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} PATCH /v1/runbooks/60b2adcc-04ac-4078-a30f-4f256c737e22 WITH [{'path': '/public', 'value': True, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8a0327ac-1d8c-44a1-9b7a-ae4f4b238a02 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "60b2adcc-04ac-4078-a30f-4f256c737e22", "created_at": "2025-05-07T22:58:14.153450+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/60b2adcc-04ac-4078-a30f-4f256c737e22", "rel": "self"}, {"href": "http://localhost/runbooks/60b2adcc-04ac-4078-a30f-4f256c737e22", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict_all_fields [0.043022s] ... 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-7c32ba21-a7dc-4ad7-ba48-2040ffaff89a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_096_nodes_traits_trait_delete_member [0.069690s] ... 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-2b3e8fa6-59be-4d05-8659-693e6ed247ef X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_system_scope [0.171444s] ... 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-8b78d9b3-bc50-4986-9d47-99755afa00cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:14.214212+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-7c0b53d2-51cc-4461-af29-4861a6f1677f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:14.214212+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_runbook.TestPatch.test_set_public_system_scope [0.084109s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/eec63838-3616-47c7-ab5c-d8f2eab6f661 WITH [{'path': '/public', 'value': True, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8eebc41f-1021-479b-9d75-e751dc1a7678 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "eec63838-3616-47c7-ab5c-d8f2eab6f661", "created_at": "2025-05-07T22:58:14.250456+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/eec63838-3616-47c7-ab5c-d8f2eab6f661", "rel": "self"}, {"href": "http://localhost/runbooks/eec63838-3616-47c7-ab5c-d8f2eab6f661", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_097_nodes_traits_trait_delete_observer [0.112704s] ... 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-e94eb2e1-b5e0-4e87-b2b4-2318ce477324 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_protected_not_allowed [0.125137s] ... 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-7cad0493-629c-4910-9cbb-88e4eb0bb22a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: Additional properties are not allowed ('protected' was unexpected)\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_unset_public_system_scope [0.116472s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_UNIQUE2', 'uuid': '88fa8c93-888b-4faf-8f76-8f7084d6d442', '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/88fa8c93-888b-4faf-8f76-8f7084d6d442 Openstack-Request-Id: req-b37eeb1e-023c-472c-aa6b-8b887ae307a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "88fa8c93-888b-4faf-8f76-8f7084d6d442", "created_at": "2025-05-07T22:58:14.374481+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE2", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/88fa8c93-888b-4faf-8f76-8f7084d6d442", "rel": "self"}, {"href": "http://localhost/runbooks/88fa8c93-888b-4faf-8f76-8f7084d6d442", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} PATCH /v1/runbooks/88fa8c93-888b-4faf-8f76-8f7084d6d442 WITH [{'path': '/public', 'value': False, 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a600f984-c145-4881-a45e-ea8f28c34de8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "88fa8c93-888b-4faf-8f76-8f7084d6d442", "created_at": "2025-05-07T22:58:14.374481+00:00", "updated_at": null, "name": "CUSTOM_UNIQUE2", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/88fa8c93-888b-4faf-8f76-8f7084d6d442", "rel": "self"}, {"href": "http://localhost/runbooks/88fa8c93-888b-4faf-8f76-8f7084d6d442", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_invalid_type [0.233744s] ... 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-fe8793ca-5a51-40cc-ade1-193c33349417 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected types , , for configdrive: ['aabb']\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_098_nodes_vifs_get_admin [0.119811s] ... 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-eaf138dc-8042-4b46-80e4-47bf41f363c3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_by_id [0.094315s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/9945cf1b-d0f2-4a35-98b6-34b94dc7b281 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d35d1f56-dda6-46f3-8116-51d20168b1d8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "9945cf1b-d0f2-4a35-98b6-34b94dc7b281", "created_at": "2025-05-07T22:58:14.465506+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/9945cf1b-d0f2-4a35-98b6-34b94dc7b281", "rel": "self"}, {"href": "http://localhost/runbooks/9945cf1b-d0f2-4a35-98b6-34b94dc7b281", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_not_base64 [0.071430s] ... 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-e76ae964-f56b-43ae-9d5a-518f33f79be8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid configdrive format: it is neither a JSON, nor a URL, nor a base64 string\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_by_id_invalid_api_version [0.052220s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/3881439b-da82-47ca-84c5-c70cb58d5a23 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\"}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_url [0.041516s] ... 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-ad9e5bc9-3ce9-42d0-af45-28f18ed9531a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_099_nodes_vifs_get_member [0.124650s] ... 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-96fadc65-28cf-4def-b71f-ed415de2eedb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_deploy_steps [0.041653s] ... 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-2f54827e-686a-4828-a5a3-8bf34e27170f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/jsonschema/validators.py:1301: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_by_name [0.085448s] ... 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-81742f29-e6d6-42e4-8181-4f60992ad646 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e9530c34-8669-4519-b502-e4bdb5eca61a", "created_at": "2025-05-07T22:58:14.616350+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/e9530c34-8669-4519-b502-e4bdb5eca61a", "rel": "self"}, {"href": "http://localhost/runbooks/e9530c34-8669-4519-b502-e4bdb5eca61a", "rel": "bookmark"}], "steps": [{"interface": "bios", "step": "apply_configuration", "args": {"foo": "bar"}, "order": 1}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_deploy_steps_fail [0.037283s] ... 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-8445ac71-8da0-4bcb-92af-5acfaf9b9937 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.69\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_100_nodes_vifs_get_observer [0.066543s] ... 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-28b6e4c9-590a-4eaf-9bfd-070e8dc353bf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_reserved_name [0.304469s] ... 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-1426580e-2599-4dc1-ba6c-d29f0c6a9c1a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"maintenance\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} POST /v1/nodes WITH {'name': 'management', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d8d1ca25-3ed5-4359-a8fc-cf07e97d842c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"management\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} POST /v1/nodes WITH {'name': 'states', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-84a8928e-097f-4338-b5ee-42f56d405154 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"states\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} POST /v1/nodes WITH {'name': 'vendor_passthru', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b7ba70a0-b3d5-4d51-ab51-523959505d34 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"vendor_passthru\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, state s, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} POST /v1/nodes WITH {'name': 'detail', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-05169850-0c52-4277-96ea-a1f6523d3a26 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"detail\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} POST /v1/nodes WITH {'name': 'validate', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cc2df6e0-fa61-48a6-b284-259a1b7ebb80 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"validate\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild [0.044443s] ... 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-96de6d74-f939-433b-866a-4e9d1c79478a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_by_name_old_api_version [0.049966s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/CUSTOM_DT1 WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow runbooks\"}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_101_nodes_vifs_post_admin [0.065791s] ... 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-934b87ec-7ca3-4ab4-a8b6-f2b5ab009f03 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_configdrive [0.045945s] ... 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-9390fc37-2660-466c-8786-3231a2c51f1f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.35 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_deploy_steps [0.049591s] ... 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-252f9723-c14b-4aa3-9c7a-377f372f9820 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/jsonschema/validators.py:1301: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_102_nodes_vifs_post_member [0.065090s] ... 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-e6447b6a-8c8c-42b8-bcb2-32965edf73d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_name_standard_trait [0.093642s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/4a48572b-1fef-48c6-9629-6e278d86d1c9 WITH [{'path': '/name', 'value': 'HW_CPU_X86_VMX', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-92f2739d-5378-4a84-a816-371349eef541 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "4a48572b-1fef-48c6-9629-6e278d86d1c9", "created_at": "2025-05-07T22:58:14.761960+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/4a48572b-1fef-48c6-9629-6e278d86d1c9", "rel": "self"}, {"href": "http://localhost/runbooks/4a48572b-1fef-48c6-9629-6e278d86d1c9", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class [0.174088s] ... 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-39b0eec4-eab6-4590-bc2c-67f548458160 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:14.831014+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-abe9f3ab-14c8-42b8-809d-8cf1d5a62b02 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:14.831014+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"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_103_nodes_vifs_post_observer [0.072831s] ... 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-7849355d-af48-44c6-8671-26fdcc4bd3a0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_not_found [0.074259s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/47ed07ea-b252-471d-842d-fe5252b98dad WITH [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-41602cb2-43cc-43bf-9dcf-bf0b1413f0cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Runbook 47ed07ea-b252-471d-842d-fe5252b98dad could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_unsupported_configdrive [0.111988s] ... 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-1646393f-dbd0-45aa-a364-3e64fc56289a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a config drive is only supported when setting provision state to active\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_104_nodes_vifs_node_vif_ident_delete_admin [0.065529s] ... 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-ec1ae84c-e80f-40e9-b89a-82c4a57e2188 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_project_scope [0.094527s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/96c78de6-139f-4026-9684-c1c8290abcc3 WITH [{'path': '/name', 'value': 'CUSTOM_NAME', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6da80b63-2bbd-4d62-9d1b-a5bf1c6c5386 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "96c78de6-139f-4026-9684-c1c8290abcc3", "created_at": "2025-05-07T22:58:14.937247+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/96c78de6-139f-4026-9684-c1c8290abcc3", "rel": "self"}, {"href": "http://localhost/runbooks/96c78de6-139f-4026-9684-c1c8290abcc3", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_resource_class_old_api_version [0.120949s] ... 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-eda47a75-6022-48c5-a9bc-24192a2fc74f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_105_nodes_vifs_node_vif_ident_delete_member [0.065475s] ... 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-aa1ea18f-8538-46d5-a69f-55cd4018cc30 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down [0.090694s] ... 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-fa3632b8-4647-4da8-9d6d-8d099714bf92 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {3} ironic.tests.unit.api.controllers.v1.test_runbook.TestPatch.test_update_system_scope [0.091491s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/beb9e3a4-72cb-4504-9d17-fca9966c18fe WITH [{'path': '/name', 'value': 'CUSTOM_NAME', 'op': 'replace'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7f53cf42-ffd2-4bc8-952e-b6d65131acaa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "beb9e3a4-72cb-4504-9d17-fca9966c18fe", "created_at": "2025-05-07T22:58:15.030426+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/beb9e3a4-72cb-4504-9d17-fca9966c18fe", "rel": "self"}, {"href": "http://localhost/runbooks/beb9e3a4-72cb-4504-9d17-fca9966c18fe", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_106_nodes_vifs_node_vif_ident_delete_observer [0.064879s] ... 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-f279b87e-dfa7-407d-a3b3-f98a1c2a2ef2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:detach\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_in_progress_deploywait [0.086442s] ... 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-05ae0b8a-bca0-403d-ab4b-b19775896e64 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {3} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_empty [0.050427s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f62a0877-f7e2-4ba6-afd6-29cc8adfa379 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"shards": []} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_107_nodes_management_indicators_get_admin [0.061668s] ... 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-95afa650-7ac4-4219-a8c4-1ca7e6f14d12 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group [0.158222s] ... 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-ead0fe36-f935-4029-a5bf-607a824781f4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:15.136022+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-33e19180-9643-4ac9-baed-e6aead4121ea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:15.136022+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_shard.TestListShards.test_fail_get_one [0.065808s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards/shard1 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4b59d845-304e-4d52-bd1d-a2ac63d5203e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The resource could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_undeploy [0.090428s] ... 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-fc106737-b797-46b9-aafb-19a36ee3baf9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_108_nodes_management_indicators_get_member [0.067977s] ... 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-a55cbdaf-dc5c-4d02-9c16-4c5cec9e5f78 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_get_one_wrong_version [0.074052s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards/shard1 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ba6aeb47-ed7e-4c04-9d56-22e951f00615 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The API version does not allow shards\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_109_nodes_management_indicators_get_observer [0.061730s] ... 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-9807fe03-d1df-4518-a871-836c1b6d2cc4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_unprovision_after_service_failed [0.082474s] ... 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-d3e77f8b-c22e-47e4-bf8d-1e43e3e80554 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group_bad_version [0.127790s] ... 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-d905f9b9-3757-4447-a1a5-be34ab7cd6d1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_post [0.049491s] ... 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\": \"\"}"} {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.controllers.v1.test_node.TestPut.test_put_raid [0.081969s] ... 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-fa501405-2345-4254-b323-7d721f469541 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {2} ironic.tests.unit.api.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. {3} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_put [0.058412s] ... 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\": \"\"}"} {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. {3} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_fail_wrong_version [0.060083s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3eae17b5-9906-4a64-b744-c97d68446735 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The API version does not allow shards\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_iface_not_supported [0.082831s] ... 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-1c336b1f-c79e-4a14-a306-6681a5652665 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver fake-hardware does not support raid (disabled or not implemented).\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_113_portgroups_get_admin [0.063186s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0871e31e-39cb-4f92-a435-a16469e2dc5d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_114_portgroups_get_member [0.054359s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e4f62edc-0710-4c01-b3d7-ee8c1bc38525 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_invalid_parameter_value [0.073392s] ... 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-e5591e30-07dc-4822-96d6-67d70a454496 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"foo\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_115_portgroups_get_observer [0.059886s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cbe70367-4090-43f5-9a29-e7571a67db31 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_older_version [0.091642s] ... 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-baaf9b1d-6856-4676-98ce-b36e3dd2ed44 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_116_portgroups_post_admin [0.065974s] ... 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/3776414e-6ba5-431c-89d0-7aa2f3793e5e Openstack-Request-Id: req-50af6e19-4df0-46ee-9190-d8157c6c1016 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "3776414e-6ba5-431c-89d0-7aa2f3793e5e", "created_at": "2025-05-07T22:58:15.664529+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/3776414e-6ba5-431c-89d0-7aa2f3793e5e", "rel": "self"}, {"href": "http://localhost/portgroups/3776414e-6ba5-431c-89d0-7aa2f3793e5e", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/3776414e-6ba5-431c-89d0-7aa2f3793e5e/ports", "rel": "self"}, {"href": "http://localhost/portgroups/3776414e-6ba5-431c-89d0-7aa2f3793e5e/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_rescue_raises_error_before_1_38 [0.072077s] ... 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-56f59a00-45a2-4c39-8b6b-e70ff620d460 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_117_portgroups_post_member [0.062767s] ... 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-27fed363-8789-464f-b4c2-43bc1b8861e7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_118_portgroups_post_observer [0.062331s] ... 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-4316239a-369b-4ff4-82e6-245e0425f648 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_None [0.087038s] ... 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-362a0a3f-8756-4c3d-acf3-ef7fa27ae778 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid secure_boot None requested for node. Allowed secure_boot states are: True, False) \", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_119_portgroups_detail_get_admin [0.056961s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-264b108f-0ca3-436f-928d-a5081ebc5864 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:15.826908+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.TestPut.test_secure_boot_invalid_request_boo [0.076185s] ... 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-4507ed18-ec2a-4ce2-ad5d-84cc80e8beb2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid target: Unrecognized value 'boo!', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_120_portgroups_detail_get_member [0.058272s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a0302707-62b9-466a-92ab-391148fe7498 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_multiple_shards [0.496617s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c20c2f53-2d23-4ec5-a049-b0d793f5950b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"shards": [{"name": "shard5", "count": 5}, {"name": "shard4", "count": 4}, {"name": "shard3", "count": 3}, {"name": "shard2", "count": 2}, {"name": "shard1", "count": 1}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_121_portgroups_detail_get_observer [0.062102s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-72a93573-ffd7-4355-ab7c-a76c47e86ca8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:15.949364+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.TestPut.test_secure_boot_invalid_request_nullstr [0.090846s] ... 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-a027e369-5bbc-4619-a182-8044e35b2ef3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid target: Unrecognized value '', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_nodes_but_no_shards [0.085256s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9e0cfdde-dcd5-4c73-89c2-f9d311141b80 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"shards": [{"name": "None", "count": 5}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_122_portgroups_portgroup_ident_get_admin [0.069069s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-440885ce-2b22-4d71-bd78-e1cd83ebe63c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:16.011944+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces [0.758525s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'uuid': 'c34c0059-0808-49d7-9bee-6195304d2cec', '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/c34c0059-0808-49d7-9bee-6195304d2cec Openstack-Request-Id: req-3fce5765-2718-4ea0-b384-7154e93401b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "c34c0059-0808-49d7-9bee-6195304d2cec", "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/c34c0059-0808-49d7-9bee-6195304d2cec", "rel": "self"}, {"href": "http://localhost/nodes/c34c0059-0808-49d7-9bee-6195304d2cec", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/c34c0059-0808-49d7-9bee-6195304d2cec/ports", "rel": "self"}, {"href": "http://localhost/nodes/c34c0059-0808-49d7-9bee-6195304d2cec/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c34c0059-0808-49d7-9bee-6195304d2cec/states", "rel": "self"}, {"href": "http://localhost/nodes/c34c0059-0808-49d7-9bee-6195304d2cec/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c34c0059-0808-49d7-9bee-6195304d2cec/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c34c0059-0808-49d7-9bee-6195304d2cec/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c34c0059-0808-49d7-9bee-6195304d2cec/volume", "rel": "self"}, {"href": "http://localhost/nodes/c34c0059-0808-49d7-9bee-6195304d2cec/volume", "rel": "bookmark"}]} GET /v1/nodes/c34c0059-0808-49d7-9bee-6195304d2cec WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fc796c1e-a647-4540-a3a9-8c89a55b5819 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "c34c0059-0808-49d7-9bee-6195304d2cec", "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/c34c0059-0808-49d7-9bee-6195304d2cec", "rel": "self"}, {"href": "http://localhost/nodes/c34c0059-0808-49d7-9bee-6195304d2cec", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/c34c0059-0808-49d7-9bee-6195304d2cec/ports", "rel": "self"}, {"href": "http://localhost/nodes/c34c0059-0808-49d7-9bee-6195304d2cec/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c34c0059-0808-49d7-9bee-6195304d2cec/states", "rel": "self"}, {"href": "http://localhost/nodes/c34c0059-0808-49d7-9bee-6195304d2cec/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/c34c0059-0808-49d7-9bee-6195304d2cec/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/c34c0059-0808-49d7-9bee-6195304d2cec/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/c34c0059-0808-49d7-9bee-6195304d2cec/volume", "rel": "self"}, {"href": "http://localhost/nodes/c34c0059-0808-49d7-9bee-6195304d2cec/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': 'a6c45e24-09cd-4157-a568-f5b9716d5cba', '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/a6c45e24-09cd-4157-a568-f5b9716d5cba Openstack-Request-Id: req-ef3608db-40dd-4d5c-8858-de6015f121d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "a6c45e24-09cd-4157-a568-f5b9716d5cba", "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/a6c45e24-09cd-4157-a568-f5b9716d5cba", "rel": "self"}, {"href": "http://localhost/nodes/a6c45e24-09cd-4157-a568-f5b9716d5cba", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/a6c45e24-09cd-4157-a568-f5b9716d5cba/ports", "rel": "self"}, {"href": "http://localhost/nodes/a6c45e24-09cd-4157-a568- f5b9716d5cba/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a6c45e24-09cd-4157-a568-f5b9716d5cba/states", "rel": "self"}, {"href": "http://localhost/nodes/a6c45e24-09cd-4157-a568-f5b9716d5cba/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a6c45e24-09cd-4157-a568-f5b9716d5cba/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a6c45e24-09cd-4157-a568-f5b9716d5cba/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a6c45e24-09cd-4157-a568-f5b9716d5cba/volume", "rel": "self"}, {"href": "http://localhost/nodes/a6c45e24-09cd-4157-a568-f5b9716d5cba/volume", "rel": "bookmark"}]} GET /v1/nodes/a6c45e24-09cd-4157-a568-f5b9716d5cba WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-913dc21b-9b18-4d09-8261-c08db8818d02 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "a6c45e24-09cd-4157-a568-f5b9716d5cba", "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/a6c45e24-09cd-4157-a568-f5b9716d5cba", "rel": "self"}, {"href": "http://localhost/nodes/a6c45e24-09cd-4157-a568-f5b9716d5cba", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/a6c45e24-09cd-4157-a568-f5b9716d5cba/ports", "rel": "self"}, {"href": "http://localhost/nodes/a6c45e24-09cd-4157-a568-f5b9716d5cba/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a6c45e24-09cd-4157-a568-f5b9716d5cba/states", "rel": "self"}, {"href": "http://localhost/nodes/a6c45e24-09cd-4157-a568-f5b9716d5cba/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a6c45e24-09cd-4157-a568-f5b9716d5cba/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a6c45e24-09cd-4157-a568-f5b9716d5cba/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a6c45e24-09cd-4157-a568-f5b9716d5cba/volume", "rel": "self"}, {"href": "http://localhost/nodes/a6c45e24-09cd-4157-a568-f5b9716d5cba/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '71d9b833-992a-4567-9196-a3225c90f8b1', '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/71d9b833-992a-4567-9196-a3225c90f8b1 Openstack-Request-Id: req-c7907911-2c0b-48e6-a626-0d94ea43a7ad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openst ack-Ironic-Api-Version: 1.40 {"uuid": "71d9b833-992a-4567-9196-a3225c90f8b1", "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/71d9b833-992a-4567-9196-a3225c90f8b1", "rel": "self"}, {"href": "http://localhost/nodes/71d9b833-992a-4567-9196-a3225c90f8b1", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/71d9b833-992a-4567-9196-a3225c90f8b1/ports", "rel": "self"}, {"href": "http://localhost/nodes/71d9b833-992a-4567-9196-a3225c90f8b1/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/71d9b833-992a-4567-9196-a3225c90f8b1/states", "rel": "self"}, {"href": "http://localhost/nodes/71d9b833-992a-4567-9196-a3225c90f8b1/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/71d9b833-992a-4567-9196-a3225c90f8b1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/71d9b833-992a-4567-9196-a3225c90f8b1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/71d9b833-992a-4567-9196-a3225c90f8b1/volume", "rel": "self"}, {"href": "http://localhost/nodes/71d9b833-992a-4567-9196-a3225c90f8b1/volume", "rel": "bookmark"}]} GET /v1/nodes/71d9b833-992a-4567-9196-a3225c90f8b1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-221d6160-9a34-49d9-aaf1-3a1db8e40c07 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "71d9b833-992a-4567-9196-a3225c90f8b1", "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/71d9b833-992a-4567-9196-a3225c90f8b1", "rel": "self"}, {"href": "http://localhost/nodes/71d9b833-992a-4567-9196-a3225c90f8b1", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/ nodes/71d9b833-992a-4567-9196-a3225c90f8b1/ports", "rel": "self"}, {"href": "http://localhost/nodes/71d9b833-992a-4567-9196-a3225c90f8b1/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/71d9b833-992a-4567-9196-a3225c90f8b1/states", "rel": "self"}, {"href": "http://localhost/nodes/71d9b833-992a-4567-9196-a3225c90f8b1/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/71d9b833-992a-4567-9196-a3225c90f8b1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/71d9b833-992a-4567-9196-a3225c90f8b1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/71d9b833-992a-4567-9196-a3225c90f8b1/volume", "rel": "self"}, {"href": "http://localhost/nodes/71d9b833-992a-4567-9196-a3225c90f8b1/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '6d05cff5-54f4-4f5a-80e9-39981c9f7899', '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/6d05cff5-54f4-4f5a-80e9-39981c9f7899 Openstack-Request-Id: req-0ce2e351-c774-4121-ad1f-9890af899369 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "6d05cff5-54f4-4f5a-80e9-39981c9f7899", "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/6d05cff5-54f4-4f5a-80e9-39981c9f7899", "rel": "self"}, {"href": "http://localhost/nodes/6d05cff5-54f4-4f5a-80e9-39981c9f7899", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/6d05cff5-54f4-4f5a-80e9-39981c9f7899/ports", "rel": "self"}, {"href": "http://localhost/nodes/6d05cff5-54f4-4f5a-80e9-39981c9f7899/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6d05cff5-54f4-4f5a-80e9-39981c9f7899/states", "rel": "self"}, {"href": "http://localhost/nodes/6d05cff5-54f4-4f5a-80e9-39981c9f7899/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6d05cff5-54f4-4f5a-80e9-39981c9f7899/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6d05cff5-54f4-4f5a-80e9-39981c9f7899/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6d05cff5-54f4-4f5a-80e9-39981c9f7899/volume", "rel": "self"}, {"href": "http://localhost/nodes/6d05cff5-54f4-4f5a-80e9-39981c9f7899/volume", "rel": "bookmark"}]} GET /v1/nodes/6d05cff5-54f4-4f5a-80e9-39981c9f7899 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c526f145- 5775-4411-94d8-0367da1ca1e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "6d05cff5-54f4-4f5a-80e9-39981c9f7899", "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/6d05cff5-54f4-4f5a-80e9-39981c9f7899", "rel": "self"}, {"href": "http://localhost/nodes/6d05cff5-54f4-4f5a-80e9-39981c9f7899", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/6d05cff5-54f4-4f5a-80e9-39981c9f7899/ports", "rel": "self"}, {"href": "http://localhost/nodes/6d05cff5-54f4-4f5a-80e9-39981c9f7899/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6d05cff5-54f4-4f5a-80e9-39981c9f7899/states", "rel": "self"}, {"href": "http://localhost/nodes/6d05cff5-54f4-4f5a-80e9-39981c9f7899/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6d05cff5-54f4-4f5a-80e9-39981c9f7899/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6d05cff5-54f4-4f5a-80e9-39981c9f7899/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6d05cff5-54f4-4f5a-80e9-39981c9f7899/volume", "rel": "self"}, {"href": "http://localhost/nodes/6d05cff5-54f4-4f5a-80e9-39981c9f7899/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '9c68549d-513d-48fe-8d58-25a6c45af405', '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/9c68549d-513d-48fe-8d58-25a6c45af405 Openstack-Request-Id: req-8f38de0e-38c1-4d81-ab6d-35ba73d57cd3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "9c68549d-513d-48fe-8d58-25a6c45af405", "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/9c68549d-513d-48fe-8d58-25a6c45af405", "rel": "self"}, {"href": "http://localhost/nodes/9c68549d-513d-48fe-8d58-25a6c45af405", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/9c68549d-513d-48fe-8d58-25a6c45af405/ports", "rel": "self"}, {"href": "http://localhost/nodes/9c68549d-513d-48fe-8d58-25a6c45af405/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9c68549d-513d-48fe-8d58-25a6c45af405/states", "rel": "self"}, {"href": "http://localhost/nodes/9c68549d-513d-48fe-8d58-25a6c45af405/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9c68549d-513d-48fe-8d58-25a6c45af405/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9c68549d-513d-48fe-8d58-25a6c45af405/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9c68549d-513d-48fe-8d58-25a6c45af405/volume", "rel": "self"}, {"href": "http://localhost/nodes/9c68549d-513d-48fe-8d58-25a6c45af405/volume", "rel": "bookmark"}]} GET /v1/nodes/9c68549d-513d-48fe-8d58-25a6c45af405 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7d76a22f-4bc0-4efc-9cca-b7c6ff0c3b27 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "9c68549d-513d-48fe-8d58-25a6c45af405", "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/9c68549d-513d-48fe-8d58-25a6c45af405", "rel": "self"}, {"href": "http://localhost/nodes/9c68549d-513d-48fe-8d58-25a6c45af405", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/9c68549d-513d-48fe-8d58-25a6c45af405/ports", "rel": "self"}, {"href": "http://localhost/nodes/9c68549d-513d-48fe-8d58-25a6c45af405/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9c68549d-513d-48fe-8d58-25a6c45af405/states", "rel": "self"}, {"href": "http://localhost/nodes/9c68549d-513d-48fe-8d58-25a6c45af405/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9c68549d-513d-48fe-8d58-25a6c45af405/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9c68549d-513d-48fe-8d58-25a6c45af405/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9c68549d-513d-48fe-8d58-25a6c45af405/volume", "rel": "self"}, {"href": "http://localhost/nodes/9c68549d-513d-48fe-8d58-25a6c45af405/volume", "rel": "bookmark"}]} POST /v1/nodes WIT H {'uuid': '4a68a3ba-8d7e-4e05-9800-b3320e87fc53', '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/4a68a3ba-8d7e-4e05-9800-b3320e87fc53 Openstack-Request-Id: req-ef01bf12-7619-4fcc-a0e3-358b7cba4899 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "4a68a3ba-8d7e-4e05-9800-b3320e87fc53", "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/4a68a3ba-8d7e-4e05-9800-b3320e87fc53", "rel": "self"}, {"href": "http://localhost/nodes/4a68a3ba-8d7e-4e05-9800-b3320e87fc53", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/4a68a3ba-8d7e-4e05-9800-b3320e87fc53/ports", "rel": "self"}, {"href": "http://localhost/nodes/4a68a3ba-8d7e-4e05-9800-b3320e87fc53/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4a68a3ba-8d7e-4e05-9800-b3320e87fc53/states", "rel": "self"}, {"href": "http://localhost/nodes/4a68a3ba-8d7e-4e05-9800-b3320e87fc53/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4a68a3ba-8d7e-4e05-9800-b3320e87fc53/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4a68a3ba-8d7e-4e05-9800-b3320e87fc53/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4a68a3ba-8d7e-4e05-9800-b3320e87fc53/volume", "rel": "self"}, {"href": "http://localhost/nodes/4a68a3ba-8d7e-4e05-9800-b3320e87fc53/volume", "rel": "bookmark"}]} GET /v1/nodes/4a68a3ba-8d7e-4e05-9800-b3320e87fc53 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-90e65fa0-32dd-4d65-b7bc-e00214963e4d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "4a68a3ba-8d7e-4e05-9800-b3320e87fc53", "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/4a68a3ba-8d7e-4e05-9800-b3320e87fc53", "rel": "self"}, {"href": "http://localhost/nodes/4a68a3ba-8d7e-4e05-9800-b3320e87fc53", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/4a68a3ba-8d7e-4e05-9800-b3320e87fc53/ports", "rel": "self"}, {"href": "http://localhost/nodes/4a68a3ba-8d7e-4e05-9800-b3320e87fc53/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4a68a3ba-8d7e-4e05-9800-b3320e87fc53/states", "rel": "self"}, {"href": "http://localhost/nodes/4a68a3ba-8d7e-4e05-9800-b3320e87fc53/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4a68a3ba-8d7e-4e05-9800-b3320e87fc53/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4a68a3ba-8d7e-4e05-9800-b3320e87fc53/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4a68a3ba-8d7e-4e05-9800-b3320e87fc53/volume", "rel": "self"}, {"href": "http://localhost/nodes/4a68a3ba-8d7e-4e05-9800-b3320e87fc53/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '20ba351f-d486-4fb9-b48f-73eeac7dedb1', '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/20ba351f-d486-4fb9-b48f-73eeac7dedb1 Openstack-Request-Id: req-b22be13f-4a84-49bd-b771-e634453d770d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "20ba351f-d486-4fb9-b48f-73eeac7dedb1", "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/20ba351f-d486-4fb9-b48f-73eeac7dedb1", "rel": "self"}, {"href": "http://localhost/nodes/20ba351f-d486-4fb9-b48f-73eeac7dedb1", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/20ba351f-d486-4fb9-b48f-73eeac7dedb1/ports", "rel": "self"}, {"href": "http://localhost/nodes/20ba351f-d486-4fb9-b48f-73eeac7dedb1/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/20ba351f-d486-4fb9-b48f-73eeac7dedb1/states", "rel": "self"}, {"href": "http://localhost/nodes/20ba351f-d486-4fb9-b48f-73eeac7dedb1/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/20ba351f-d486-4fb9-b48f-73eeac7dedb1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/20ba351f-d486-4fb9-b48f-73eeac7dedb1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/20ba351f-d486-4fb9-b48f-73eeac7dedb1/volume", "rel": "self"}, {"href": "http://localhost/nodes/20ba351f-d486-4fb9-b48f-73eeac7dedb1/volume", "rel": "bookmark"}]} GET /v1/nodes/20ba351f-d486-4fb9-b48f-73eeac7dedb1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dd76a1bd-e700-4094-b4e6-c14585f0dab3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "20ba351f-d486-4fb9-b48f-73eeac7dedb1", "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/20ba351f-d486-4fb9-b48f-73eeac7dedb1", "rel": "self"}, {"href": "http://localhost/nodes/20ba351f-d486-4fb9-b48f-73eeac7dedb1", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/20ba351f-d486-4fb9-b48f-73eeac7dedb1/ports", "rel": "self"}, {"href": "http://localhost/nodes/20ba351f-d486-4fb9-b48f-73eeac7dedb1/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/20ba351f-d486-4fb9-b48f-73eeac7dedb1/states", "rel": "self"}, {"href": "http://localhost/nodes/20ba351f-d486-4fb9-b48f-73eeac7dedb1/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/20ba351f-d486-4fb9-b48f-73eeac7dedb1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/20ba351f-d486-4fb9-b48f-73eeac7dedb1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/20ba351f-d486-4fb9-b48f-73eeac7dedb1/volume", "rel": "self"}, {"href": "http://localhost/nodes/20ba351f-d486-4fb9-b48f-73eeac7dedb1/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '87e55f5d-cbfd-4027-b7d5-919596435e68', '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/87e55f5d-cbfd-4027-b7d5-919596435e68 Openstack-Request-Id: req-eec26c63-3543-4348-813a-8b1ba4a68590 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Versi on: 1.40 {"uuid": "87e55f5d-cbfd-4027-b7d5-919596435e68", "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/87e55f5d-cbfd-4027-b7d5-919596435e68", "rel": "self"}, {"href": "http://localhost/nodes/87e55f5d-cbfd-4027-b7d5-919596435e68", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/87e55f5d-cbfd-4027-b7d5-919596435e68/ports", "rel": "self"}, {"href": "http://localhost/nodes/87e55f5d-cbfd-4027-b7d5-919596435e68/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/87e55f5d-cbfd-4027-b7d5-919596435e68/states", "rel": "self"}, {"href": "http://localhost/nodes/87e55f5d-cbfd-4027-b7d5-919596435e68/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/87e55f5d-cbfd-4027-b7d5-919596435e68/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/87e55f5d-cbfd-4027-b7d5-919596435e68/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/87e55f5d-cbfd-4027-b7d5-919596435e68/volume", "rel": "self"}, {"href": "http://localhost/nodes/87e55f5d-cbfd-4027-b7d5-919596435e68/volume", "rel": "bookmark"}]} GET /v1/nodes/87e55f5d-cbfd-4027-b7d5-919596435e68 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a2da7f15-b097-4d41-ad13-851ccd24fb42 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "87e55f5d-cbfd-4027-b7d5-919596435e68", "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/87e55f5d-cbfd-4027-b7d5-919596435e68", "rel": "self"}, {"href": "http://localhost/nodes/87e55f5d-cbfd-4027-b7d5-919596435e68", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/87e55f5d-cbfd- 4027-b7d5-919596435e68/ports", "rel": "self"}, {"href": "http://localhost/nodes/87e55f5d-cbfd-4027-b7d5-919596435e68/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/87e55f5d-cbfd-4027-b7d5-919596435e68/states", "rel": "self"}, {"href": "http://localhost/nodes/87e55f5d-cbfd-4027-b7d5-919596435e68/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/87e55f5d-cbfd-4027-b7d5-919596435e68/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/87e55f5d-cbfd-4027-b7d5-919596435e68/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/87e55f5d-cbfd-4027-b7d5-919596435e68/volume", "rel": "self"}, {"href": "http://localhost/nodes/87e55f5d-cbfd-4027-b7d5-919596435e68/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': 'ca0447e9-de5c-45a7-9a2c-2e0d454fb431', '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/ca0447e9-de5c-45a7-9a2c-2e0d454fb431 Openstack-Request-Id: req-ab90a05b-028f-4ab3-ae34-2f23ef7da43f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "ca0447e9-de5c-45a7-9a2c-2e0d454fb431", "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/ca0447e9-de5c-45a7-9a2c-2e0d454fb431", "rel": "self"}, {"href": "http://localhost/nodes/ca0447e9-de5c-45a7-9a2c-2e0d454fb431", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/ca0447e9-de5c-45a7-9a2c-2e0d454fb431/ports", "rel": "self"}, {"href": "http://localhost/nodes/ca0447e9-de5c-45a7-9a2c-2e0d454fb431/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ca0447e9-de5c-45a7-9a2c-2e0d454fb431/states", "rel": "self"}, {"href": "http://localhost/nodes/ca0447e9-de5c-45a7-9a2c-2e0d454fb431/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ca0447e9-de5c-45a7-9a2c-2e0d454fb431/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ca0447e9-de5c-45a7-9a2c-2e0d454fb431/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ca0447e9-de5c-45a7-9a2c-2e0d454fb431/volume", "rel": "self"}, {"href": "http://localhost/nodes/ca0447e9-de5c-45a7-9a2c-2e0d454fb431/volume", "rel": "bookmark"}]} GET /v1/nodes/ca0447e9-de5c-45a7-9a2c-2e0d454fb431 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7b191b92-b938-4c58-8921-4611d f87ede2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "ca0447e9-de5c-45a7-9a2c-2e0d454fb431", "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/ca0447e9-de5c-45a7-9a2c-2e0d454fb431", "rel": "self"}, {"href": "http://localhost/nodes/ca0447e9-de5c-45a7-9a2c-2e0d454fb431", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/ca0447e9-de5c-45a7-9a2c-2e0d454fb431/ports", "rel": "self"}, {"href": "http://localhost/nodes/ca0447e9-de5c-45a7-9a2c-2e0d454fb431/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ca0447e9-de5c-45a7-9a2c-2e0d454fb431/states", "rel": "self"}, {"href": "http://localhost/nodes/ca0447e9-de5c-45a7-9a2c-2e0d454fb431/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ca0447e9-de5c-45a7-9a2c-2e0d454fb431/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ca0447e9-de5c-45a7-9a2c-2e0d454fb431/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ca0447e9-de5c-45a7-9a2c-2e0d454fb431/volume", "rel": "self"}, {"href": "http://localhost/nodes/ca0447e9-de5c-45a7-9a2c-2e0d454fb431/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': 'e1fcd7de-c758-4eb9-a22b-a09208824f7d', '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/e1fcd7de-c758-4eb9-a22b-a09208824f7d Openstack-Request-Id: req-e81d9d5c-c6ef-4c2f-867c-01b376449844 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "e1fcd7de-c758-4eb9-a22b-a09208824f7d", "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/e1fcd7de-c758-4eb9-a22b-a09208824f7d", "rel": "self"}, {"href": "http://localhost/nodes/e1fcd7de-c758-4eb9-a22b-a09208824f7d", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/e1fcd7de-c758-4eb9-a22b-a09208824f7d/ports", "rel": "self"}, {"href": "http://localhost/nodes/e1fcd7de-c758-4eb9-a22b-a09208824f7d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e1fcd7de-c758-4eb9-a22b-a09208824f7d/states", "rel": "self"}, {"href": "http://localhost/nodes/e1fcd7de-c758-4eb9-a22b-a09208824f7d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e1fcd7de-c758-4eb9-a22b-a09208824f7d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e1fcd7de-c758-4eb9-a22b-a09208824f7d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e1fcd7de-c758-4eb9-a22b-a09208824f7d/volume", "rel": "self"}, {"href": "http://localhost/nodes/e1fcd7de-c758-4eb9-a22b-a09208824f7d/volume", "rel": "bookmark"}]} GET /v1/nodes/e1fcd7de-c758-4eb9-a22b-a09208824f7d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1a68e515-4bd3-43f1-8828-16bc8deced44 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "e1fcd7de-c758-4eb9-a22b-a09208824f7d", "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/e1fcd7de-c758-4eb9-a22b-a09208824f7d", "rel": "self"}, {"href": "http://localhost/nodes/e1fcd7de-c758-4eb9-a22b-a09208824f7d", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/e1fcd7de-c758-4eb9-a22b-a09208824f7d/ports", "rel": "self"}, {"href": "http://localhost/nodes/e1fcd7de-c758-4eb9-a22b-a09208824f7d/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e1fcd7de-c758-4eb9-a22b-a09208824f7d/states", "rel": "self"}, {"href": "http://localhost/nodes/e1fcd7de-c758-4eb9-a22b-a09208824f7d/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e1fcd7de-c758-4eb9-a22b-a09208824f7d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e1fcd7de-c758-4eb9-a22b-a09208824f7d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e1fcd7de-c758-4eb9-a22b-a09208824f7d/volume", "rel": "self"}, {"href": "http://localhost/nodes/e1fcd7de-c758-4eb9-a22b-a09208824f7d/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '7a31a59f-2d0 2-48ac-ba0a-91a312ab64ed', '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/7a31a59f-2d02-48ac-ba0a-91a312ab64ed Openstack-Request-Id: req-1b589c3a-608f-4c22-a143-26df106e8680 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "7a31a59f-2d02-48ac-ba0a-91a312ab64ed", "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/7a31a59f-2d02-48ac-ba0a-91a312ab64ed", "rel": "self"}, {"href": "http://localhost/nodes/7a31a59f-2d02-48ac-ba0a-91a312ab64ed", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/7a31a59f-2d02-48ac-ba0a-91a312ab64ed/ports", "rel": "self"}, {"href": "http://localhost/nodes/7a31a59f-2d02-48ac-ba0a-91a312ab64ed/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7a31a59f-2d02-48ac-ba0a-91a312ab64ed/states", "rel": "self"}, {"href": "http://localhost/nodes/7a31a59f-2d02-48ac-ba0a-91a312ab64ed/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7a31a59f-2d02-48ac-ba0a-91a312ab64ed/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7a31a59f-2d02-48ac-ba0a-91a312ab64ed/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7a31a59f-2d02-48ac-ba0a-91a312ab64ed/volume", "rel": "self"}, {"href": "http://localhost/nodes/7a31a59f-2d02-48ac-ba0a-91a312ab64ed/volume", "rel": "bookmark"}]} GET /v1/nodes/7a31a59f-2d02-48ac-ba0a-91a312ab64ed WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4e12df0b-92b0-4b40-9d90-3a35af77311d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "7a31a59f-2d02-48ac-ba0a-91a312ab64ed", "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/7a31a59f-2d02-48ac-ba0a-91a312ab64ed", "rel": "self"}, {"href": "http://localhost/nodes/7a31a59f-2d02-48ac-ba0a-91a312ab64ed", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/7a31a59f-2d02-48ac-ba0a-91a312ab64ed/ports", "rel": "self"}, {"href": "http://localhost/nodes/7a31a59f-2d02-48ac-ba0a-91a312ab64ed/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7a31a59f-2d02-48ac-ba0a-91a312ab64ed/states", "rel": "self"}, {"href": "http://localhost/nodes/7a31a59f-2d02-48ac-ba0a-91a312ab64ed/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7a31a59f-2d02-48ac-ba0a-91a312ab64ed/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7a31a59f-2d02-48ac-ba0a-91a312ab64ed/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7a31a59f-2d02-48ac-ba0a-91a312ab64ed/volume", "rel": "self"}, {"href": "http://localhost/nodes/7a31a59f-2d02-48ac-ba0a-91a312ab64ed/volume", "rel": "bookmark"}]} POST /v1/nodes WITH {'uuid': '25d5cd15-58f0-4e27-8323-c9161cf34b38', '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/25d5cd15-58f0-4e27-8323-c9161cf34b38 Openstack-Request-Id: req-59099dd0-dc99-4c06-88a8-c16b9ced7ec1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "25d5cd15-58f0-4e27-8323-c9161cf34b38", "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/25d5cd15-58f0-4e27-8323-c9161cf34b38", "rel": "self"}, {"href": "http://localhost/nodes/25d5cd15-58f0-4e27-8323-c9161cf34b38", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/25d5cd15-58f0-4e27-8323-c9161cf34b38/ports", "rel": "self"}, {"href": "http://localhost/nodes/25d5cd15-58f0-4e27-8323-c9161cf34b38/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/25d5cd15-58f0-4e27-8323-c9161cf34b38/states", "rel": "self"}, {"href": "http://localhost/nodes/25d5cd15-58f0-4e27-8323-c9161cf34b38/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/25d5cd15-58f0-4e27-8323-c9161cf34b38/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/25d5cd15-58f0-4e27-8323-c9161cf34b38/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/25d5cd15-58f0-4e27-8323-c9161cf34b38/volume", "rel": "self"}, {"href": "http://localhost/nodes/25d5cd15-58f0-4e27-8323-c9161cf34b38/volume", "rel": "bookmark"}]} GET /v1/nodes/25d5cd15-58f0-4e27-8323-c9161cf34b38 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3562f905-cad9-4037-b10d-cd305f6b3329 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "25d5cd15-58f0-4e27-8323-c9161cf34b38", "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/25d5cd15-58f0-4e27-8323-c9161cf34b38", "rel": "self"}, {"href": "http://localhost/nodes/25d5cd15-58f0-4e27-8323-c9161cf34b38", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/25d5cd15-58f0-4e27-8323-c9161cf34b38/ports", "rel": "self"}, {"href": "http://localhost/nodes/25d5cd15-58f0-4e27-8323-c9161cf34b38/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/25d5cd15-58f0-4e27-8323-c9161cf34b38/states", "rel": "self"}, {"href": "http://localhost/nodes/25d5cd15-58f0-4e27-8323-c9161cf34b38/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/25d5cd15-58f0-4e27-8323-c9161cf34b38/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/25d5cd15-58f0-4e27-8323-c9161cf34b38/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/25d5cd15-58f0-4e27-8323-c9161cf34b38/volume", "rel": "self"}, {"href": "http://localhost/nodes/25d5cd15-58f0-4e27-8323-c9161cf34b38/volume", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_older_soft_ver [0.085790s] ... 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-e0119a5f-6749-4196-9671-b4a4798e0cdd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"This endpoint is supported starting with the API version 1.76\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_shard.TestListShards.test_one_shard [0.072873s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-38cc75b3-727b-452a-9e61-7e078cc7956c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"shards": [{"name": "shard1", "count": 1}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_123_portgroups_portgroup_ident_get_member [0.066578s] ... 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-0b989355-b2b9-4a62-a7ce-ac3276a42808 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch [0.042554s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_valid_soft_ver [0.082226s] ... 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-a494f2ab-82d7-4ad1-b1ca-d9cb7042c6aa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_no_add_root_attr [0.038970s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_124_portgroups_portgroup_ident_get_observer [0.073798s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9fe97e22-d70a-437a-8052-0564291fd9e5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:16.148463+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_remove_non_existent [0.040738s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_valid_undocumented_request_zero [0.071708s] ... 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-e81a7181-2bfb-4f37-be28-b95e7210eb57 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces_bad_version [0.197679s] ... 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-da9c47c8-c51f-4f41-9fa8-eba60a23eac1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'console_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-19d558c8-c3c0-4687-bb06-79f90bf95312 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'deploy_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-23c6d373-79d9-4d29-847d-498c7e35e400 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'inspect_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-aed52ced-89df-4bf4-9cd6-96cd9f0434f4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'manageme nt_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-7f0db42a-360a-4ce9-a00e-790240130fa5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'power_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e029ebf4-01de-4506-b2a5-e29deaab111b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'raid_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c6984461-4499-4658-a1e4-890b144864d1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST /v1/nodes WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'vendor_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e1e04b4f-e466-49d4-910d-c456284aca40 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_125_portgroups_portgroup_ident_patch_admin [0.072922s] ... 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-b5bd1e20-b972-4439-9938-1d867175519a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_replace_non_existent_list_item [0.039056s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_escaped_complex_path [0.043985s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_traits [0.057770s] ... 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-cefaf76f-4329-4a90-8bee-f75541414ccd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: Additional properties are not allowed ('traits' was unexpected)\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_126_portgroups_portgroup_ident_patch_member [0.067497s] ... 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-3b0f62dc-e9ee-4398-b700-94831c6e7e66 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_escaped_slash [0.040113s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_invalid_request_two [0.112904s] ... 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-f5a0fa4c-117c-4987-870e-1ceb91cf41be X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid target: Unrecognized value '2', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_storage_interface_old_api_version [0.056277s] ... 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-e9bb957a-221b-4924-bb64-e97c13250f27 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_127_portgroups_portgroup_ident_patch_observer [0.067780s] ... 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-b81c03fc-a1d8-47cd-95b4-e88452f0d904 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_escaped_tilde [0.050212s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_incomplete_escape [0.039515s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_older_soft_ver [0.102326s] ... 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-1fad90b0-f427-4590-bdfe-3ed5a5c5d50e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"This endpoint is supported starting with the API version 1.76\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_128_portgroups_portgroup_ident_delete_admin [0.071756s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-bc18e3cb-5ff3-4921-987b-b0c2e2acd951 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_invalid_escape_sequence [0.042270s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_slash [0.035790s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_129_portgroups_portgroup_ident_delete_member [0.065326s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-252f239f-b02f-4695-85c7-6ce26ac42afe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_valid_soft_ver [0.092164s] ... 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-9bf2c70d-1548-4514-93d0-b9eca5b4b93e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_with_tilde [0.036259s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_driver_info [0.185080s] ... 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-11caf12a-7e3c-4ddb-a0c2-9764cf1a7f36 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:16.509431+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-50e2c193-f9c3-48ee-8b61-6d81a653fe74 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:16.509431+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"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_130_portgroups_portgroup_ident_delete_observer [0.062967s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-92dd0f17-0b86-40b9-90c0-4112c78b4ee4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields [0.045728s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields_fail [0.039196s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_valid_undocumented_request_one [0.088347s] ... 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-b7f1633d-1366-4cea-9157-096d148b89cb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_131_nodes_portgroups_get_admin [0.081372s] ... 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-d81d1f02-470b-41e0-ad7c-9734edd88c74 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_multiple_success [0.043475s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_no_path [0.039768s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_extra [0.178768s] ... 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-c89237b6-1696-44c8-9845-1f239042c135 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:16.701081+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-882f978b-3a35-4c02-b7aa-85899c59777f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:16.701081+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.TestPut.test_service [0.116314s] ... 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-ad0ea50a-23f9-44d6-a03f-0e155fd48ea2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.87 Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/jsonschema/validators.py:1301: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_remove [0.034647s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_success [0.037260s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_replace [0.037812s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_service_args_required [0.092449s] ... 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-8efe3967-d930-4012-af98-52ec9b4780dc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.87 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"service_steps\\\" is required when setting target provision state to service\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_similar_subpath [0.035149s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_subpath_success [0.029667s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_properties [0.173501s] ... 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-f7ae59c4-559b-4942-9a5b-6b57c30ca870 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:16.871437+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-6e123eee-a8eb-4be8-962e-69091362aa82 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:16.871437+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"}]} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_success [0.030476s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_132_nodes_portgroups_get_member [0.274979s] ... 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-42352a04-c985-4001-9875-81f0d7e4c43c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_service_with_runbooks [0.110015s] ... 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-4e2a4518-7066-4a24-bb70-0e002273f1a7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/jsonschema/validators.py:1301: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_similar_subpath [0.043793s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_subpath_success [0.023751s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_success [0.015785s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patch_update_changed_fields [0.017546s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_133_nodes_portgroups_get_observer [0.088636s] ... 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-ea4b2995-0b22-4284-ba8a-60a8f8f296c9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patch_validate_allowed_fields [0.018204s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_chassis_uuid [0.157306s] ... 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-2db6d076-c63a-4fc3-bdd3-6e977f988280 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:17.022120+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-375342e6-e0b7-4aa6-90b3-e9a5178f0e59 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:17.022120+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_service_with_runbooks_unapproved [0.091432s] ... 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-f8b8687e-f331-40da-a813-8fdfd203d28c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"This runbook has not been approved for use on this node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123. Please ask an administrator to add it to your node traits.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patch_validate_allowed_special_fields [0.017066s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patched_validate_with_schema [0.018480s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_sanitize_dict [0.016130s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_134_nodes_portgroups_detail_get_admin [0.072595s] ... 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-535e1ad9-ee21-419c-9d55-7bac272ecf93 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:17.082166+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_limit [0.016311s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir [0.015571s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device [0.085234s] ... 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-94502593-2b2a-40ec-99a7-e16b640d1df6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve [0.017768s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_no_port [0.020194s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_135_nodes_portgroups_detail_get_member [0.075839s] ... 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-90ea7d25-1946-4b96-b387-ad26c6581007 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_no_port_policy_forbidden [0.019726s] ... ok {3} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_policy_notfound [0.018310s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_by_name [0.080916s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/management/boot_device WITH {'boot_device': 'pxe'} GOT Response: 204 No Content Openstack-Request-Id: req-b18e2685-4730-47f1-ae29-5e560b4d57cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_default_conductor_group [0.183338s] ... 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-50e8b96f-7a6e-4484-b093-8b1eacfae327 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:17.215231+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-ed26fb8e-1296-4657-a042-77e2a64d7a7c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:17.215231+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_volume.TestGetVolume.test_get_volume [0.044980s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-20321935-0a5a-40cb-8af6-d6d675c6600b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]} GET /v1/volume/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e9a8e6a8-1d17-4ca2-bd6a-f7dc36feda40 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]} GET /volume/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6bffdc61-57fc-4fea-bf4b-5aedfe7df112 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]} GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d66bc75f-7a4f-4189-a409-859a2720f0d5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": []} GET /volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-637523bf-6815-490f-b3bd-70326ec920c8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": []} GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-71b18bc2-efa9-4139-b4b2-533c81c36893 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": []} GET /volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f967bd5e-580e-4b4f-9ba6-1ad2a5a7db30 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": []} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_136_nodes_portgroups_detail_get_observer [0.080151s] ... 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-72bc38cb-510b-4708-a2ab-e67448aa9d84 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:17.234294+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume_invalid_api_version [0.027857s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/ WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-042692c4-734f-477a-bab4-991dd30f914f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success [0.025311s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-875e54f5-faaa-484a-8e4d-d69a5e9f337d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_not_supported [0.079227s] ... 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-d53814e6-088c-42dc-be51-717eea8a0a77 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_137_ports_get_admin [0.068527s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-24ad96a9-ee8c-41fc-9177-c42a1f4b1914 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault [0.026738s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-82338fd1-9428-4c5b-9354-c92543e45b2a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} {3} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug [0.022457s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-dec3b9a6-1a87-4ca5-a84c-0983e7753f03 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} {3} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug_tracebacks [0.025013s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a642efda-8ed1-469b-9643-6dd0677d2ff9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Test exception message.\\nTraceback (most recent call last):\\n File \\\"/opt/stack/ironic/ironic/common/rpc/amqp.py\\\", line 434, in _process_data\\\\n **args)\\n File \\\"/opt/stack/ironic/ironic/common/rpc/dispatcher.py\\\", line 172, in dispatch\\\\n result = getattr(proxyobj, method)(ctxt, **kwargs)\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent [0.088063s] ... 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-ee509ff7-1c0f-49ab-adc5-6a017e23e4c1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_138_ports_get_member [0.072430s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a5443e9c-8e63-4a1a-af8b-c104066144e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault [0.026468s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-8b9cff01-3ae4-4f2d-ad51-fd17c331070d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_default_resource_class [0.190251s] ... 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-53c0407e-f462-4089-8a43-1d852a339387 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:17.403134+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-b1e0d293-2d17-4d89-8d73-8b89d1fcae64 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:17.403134+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"}]} {3} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug [0.024171s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-686664c4-5bdc-4e17-829d-05dbc2929f53 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} {3} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug_tracebacks [0.023923s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-b515ccfb-f1ad-4373-9ee8-b9feeb87beed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Test exception message.\\nTraceback (most recent call last):\\n File \\\"/opt/stack/ironic/ironic/common/rpc/amqp.py\\\", line 434, in _process_data\\\\n **args)\\n File \\\"/opt/stack/ironic/ironic/common/rpc/dispatcher.py\\\", line 172, in dispatch\\\\n result = getattr(proxyobj, method)(ctxt, **kwargs)\", \"debuginfo\": \"Traceback (most recent call last):\\n\\n File \\\"/builddir/build/BUILD/ironic-29.1.0.dev82/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.dev82/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\"}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_139_ports_get_observer [0.065814s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dba953eb-3a3a-44d7-9318-0305c8be894e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {3} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success [0.024691s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-917a708a-690b-4502-90d2-3ba7fe21436e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Remote error: TestException Test exception message.\\n['\",\"debuginfo\":null}"} {3} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback [0.024111s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-8fea8cad-70ab-40a8-9447-471c3b9c84f2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug [0.021760s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-f83fa2f2-3e7d-4e5f-b028-646bbdb2d950 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_140_ports_post_admin [0.072217s] ... 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-aa6978fe-4679-443b-bb30-fb1e9dd51c64 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 68a552fb-dcd2-43bf-9302-e4c93287be16 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug_tracebacks [0.023089s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-7ff1dcf2-6bee-4391-bea7-fddc2d1ef711 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": \"Traceback (most recent call last):\\n\\n File \\\"/builddir/build/BUILD/ironic-29.1.0.dev82/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.dev82/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_hooks.TestPolicyDeprecation.test_policy_deprecation_check [0.017570s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_internal_field [0.143466s] ... 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-27b7b9bd-259d-496a-99df-439f4172d55d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for node: Additional properties are not allowed ('reservation' was unexpected)\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_authenticated [0.025919s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-04b6d725-5689-45cc-a45d-ddc795817349 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"chassis": []} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_141_ports_post_member [0.072926s] ... 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-d5fddd48-4729-4c50-ab03-d3fb3a664102 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_not_authenticated [0.021210s] ... 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}} {3} ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_public_unauthenticated [0.022874s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-14ad912b-5d05-4f2e-9960-f93fc9ba33f8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}} {3} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_get_request [0.023498s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_portgroups_subresource [0.089404s] ... 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-c584e5e7-d252-4a0d-94a7-2a04d2646ade X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_options_request [0.021128s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_142_ports_post_observer [0.077441s] ... 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-5ed8bdd1-a5b5-4bcd-bbb9-b5960ef7a304 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_get_request [0.028508s] ... ok {3} ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_options_request [0.021673s] ... ok {3} ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_disabled [0.024769s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1d78678c-7ce4-4538-a8bc-1768d5d94c23 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "OpenStack Ironic API", "description": "Ironic is an OpenStack project which enables the provision and management of baremetal machines.", "default_version": {"id": "v1", "links": [{"href": "http://spam.ham/eggs/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "versions": [{"id": "v1", "links": [{"href": "http://spam.ham/eggs/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_143_ports_detail_get_admin [0.072169s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-43590b28-6115-4fc2-b7c6-e9c4f92a9c7d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:17.744498+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_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_enabled [0.023390s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6a9a5c52-c482-41ca-8029-f63980039050 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "OpenStack Ironic API", "description": "Ironic is an OpenStack project which enables the provision and management of baremetal machines.", "default_version": {"id": "v1", "links": [{"href": "https://mycloud.com/ironic/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "versions": [{"id": "v1", "links": [{"href": "https://mycloud.com/ironic/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}]} {3} ironic.tests.unit.api.validation.test_validators.TestSchemaValidator.test_datetime_format [0.017293s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource [0.125837s] ... 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-cd6de237-b34b-4899-95e6-88964a31b417 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {3} ironic.tests.unit.api.validation.test_validators.TestSchemaValidator.test_uuid_format [0.016731s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_144_ports_detail_get_member [0.068575s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-95225653-9c04-44a0-85a1-38f07e6a9f10 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions [0.021788s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ foo() migrated 15 of 15 objects. {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2 [0.022134s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ func1() migrated 15 of 15 objects. func2() migrated 20 of 20 objects. {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource_no_node_id [0.067855s] ... 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\": \"\"}"} {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_done [0.021869s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ func1() migrated 10 of 10 objects. func2() migrated 0 of 0 objects. {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent_invalid_value [0.481522s] ... 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-73891f91-d1ba-4c7c-a27a-49024af4eb2b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid persistent: Unrecognized value 'blah', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_145_ports_detail_get_observer [0.067073s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-270c00fc-5f1a-4ba3-99d3-acf059e8c3b7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:17.886141+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.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_notdone [0.021479s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ func1() migrated 10 of 15 objects. {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_onedone [0.021247s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ func1() migrated 10 of 10 objects. {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_exception [0.022157s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ Error while running foo: bar. {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource [0.083866s] ... 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-bac60f6b-246a-49eb-8ec6-fc12c074dfba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_146_ports_port_id_get_admin [0.071748s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c627c549-e7f7-480d-9438-93745c306263 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:17.949846+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.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_none [0.023569s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name [0.089438s] ... 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-beb3e8dc-ae59-4c83-abd9-124ae6d51b91 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource_no_node_id [0.073578s] ... 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\": \"\"}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_147_ports_port_id_get_member [0.070739s] ... 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-f0c9be49-5211-448b-952e-692a51c36d33 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name_unsupported [0.072597s] ... 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-f94bae48-37ea-47d0-aa48-59106506e427 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_targets_subresource [0.083655s] ... 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-22a1138b-dc60-41e1-a75e-ee7b9fe2dca1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_148_ports_port_id_get_observer [0.077324s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9393be63-6198-45f8-b946-2c603174060e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:18.098149+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.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request [0.075353s] ... 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-bb1a2cdd-af6b-4b0e-8921-bb23b3224008 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid enabled: Unrecognized value 'invalid-value', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_async [0.069770s] ... 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-57683462-4b23-4d74-85ba-3e944f823f33 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request_missing_parameter [0.076530s] ... 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-190d8eba-718c-4032-a90d-9e3912dc25ee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: enabled\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_149_ports_port_id_patch_admin [0.090327s] ... 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-cb259bfd-67bd-4174-b9c6-d4e1865c740c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_by_name [0.066925s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes/node-109/vendor_passthru/test WITH {'foo': 'bar'} GOT Response: 202 Accepted Openstack-Request-Id: req-19096abc-d6aa-4b9c-b7d3-cbfd1ef8a413 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_150_ports_port_id_patch_member [0.069371s] ... 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-d448f2bc-c3b9-4809-a3ee-db4459c00394 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_console_not_supported [0.081586s] ... 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-ddd1482a-276f-4222-ac8e-924bb66fc4bd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support console (disabled or not implemented).\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_delete [0.074863s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test GOT Response: 202 Accepted Openstack-Request-Id: req-26ecf080-fa11-44a1-a9ab-ff2905af494c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_two_calls_done [0.370750s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ func1() migrated 10 of 10 objects. func1() migrated 0 of 0 objects. func2() migrated 0 of 0 objects. {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_151_ports_port_id_patch_observer [0.077006s] ... 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-d4b8c63a-11fe-4880-93e1-bc17e7ddb2b8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_disabled [0.088427s] ... 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-cafce55b-6c40-44d4-be60-0381f4f48fac X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations [0.044826s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Running batches of 50 until migrations have been completed. Data migrations have completed. {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_get [0.069220s] ... 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-9b053399-15bc-4485-891d-1f99be1e7082 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 "foo" {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_152_ports_port_id_delete_admin [0.075127s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1020dcf9-eb53-48e7-a105-0d5dab9b5f79 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_batches [0.055684s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Running batches of 50 until migrations have been completed. Data migrations have completed. {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_enabled [0.091467s] ... 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-6f5d4a75-db45-430b-b752-552b97dc0961 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_exception [0.046193s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Running batches of 50 until migrations have been completed. {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_methods [0.091454s] ... 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-46016346-2664-4b06-a50c-3c3aa90b8e33 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"foo": "bar"} GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-20a91559-2b5f-4ce1-8fb3-618fe5aec3f3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"foo": "bar"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_153_ports_port_id_delete_member [0.073932s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-57453db1-c717-41a0-930c-0f09a99cdb2d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option1 [0.040556s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Malformed option m1key1=value1 {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state [0.077803s] ... 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-7944c5d6-7ea5-46c4-9072-f1b5f5356794 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_154_ports_port_id_delete_observer [0.068982s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c0c07be6-e551-4afd-b20a-a605ddb4f2ab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_no_such_method [0.071348s] ... 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-6b2c43e0-e2c6-4a4a-b195-e75d9b7552d9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver fake-hardware does not support test (disabled or not implemented).\", \"debuginfo\": null}"} {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option2 [0.052434s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Malformed option m1.key1value1 {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_max_count_neg [0.047307s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ "max-count" must be a positive value. {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_155_nodes_ports_get_admin [0.067089s] ... 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-49220da9-4bd8-4cad-9d4c-725f6bf40ade X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_invalid_value [0.085868s] ... 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-a3503cae-643e-4bff-9b8a-89bcf25f00e9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"error\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_put [0.066800s] ... 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-e5ee7dec-e3bc-460f-9991-3d2ca303e235 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_notdone [0.035541s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Data migrations have not completed. Please re-run. {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_156_nodes_ports_get_member [0.062858s] ... 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-8a5c5f99-0ced-446c-9c16-74f8acd8de8c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_sync [0.065439s] ... 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-a2b612dd-af35-4092-be8d-0f8773a8ecd7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"cat": "meow"} {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_with_options [0.052052s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ Running batches of 50 until migrations have been completed. Data migrations have completed. {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_not_supported [0.098715s] ... 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-5fc1da96-97da-4c27-83fd-94d2d4f46e28 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions [0.042639s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_157_nodes_ports_get_observer [0.071740s] ... 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-2c1c7503-001e-4405-bc79-628f69d37063 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_without_method [0.074393s] ... 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-a944a420-0c0b-49e2-a1dc-10d1bbaa3e90 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: method\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_qs [0.074327s] ... 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-d7431f44-31bc-42f4-bd7a-44c0e143eca2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_bad [0.057708s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_158_nodes_ports_detail_get_admin [0.072770s] ... 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-0340d136-9788-4567-9119-d5fcf8ca89b0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:18.830915+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byaddress [0.065020s] ... 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\"}"} {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_ignore_models [0.053662s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_versioning [0.086350s] ... 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-0d0d2705-46ec-4d38-8592-01ba40891134 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.63 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_159_nodes_ports_detail_get_member [0.077487s] ... 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-33f2edca-068a-428e-b7f4-cca56c71f779 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.command.test_dbsync.OnlineMigrationTestCase.test_check_versions_bad [0.050058s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ This is bad {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byid [0.096019s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 204 No Content Openstack-Request-Id: req-bbafe45f-1b3a-4ff2-8638-9d15ac08a32c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {3} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_allocations_table_latin1 [0.038190s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_160_nodes_ports_detail_get_observer [0.070069s] ... 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-6b8c828e-5790-420c-871d-b147f1461ccc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:18.986122+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.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode [0.080092s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance WITH {'reason': 'fake_reason'} GOT Response: 202 Accepted Openstack-Request-Id: req-2b8d3dde-da01-428e-8a0c-5de832b18384 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {3} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_allocations_table_myiasm [0.058432s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_by_name [0.072298s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/maintenance WITH {'reason': 'fake_reason'} GOT Response: 202 Accepted Openstack-Request-Id: req-2eb1f4a4-d711-4129-91a7-0626341f0f58 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_161_portgroups_ports_get_admin [0.079055s] ... 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-2c0ad914-ac5a-468b-b977-03f2edc7b0b9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {3} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_allocations_table_myiasm_both [0.049840s] ... ok {3} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_allocations_table_ok [0.046601s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_error [0.074501s] ... 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-7dfed8c8-e0c3-4f1d-af52-e9797ce93b09 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_162_portgroups_ports_get_member [0.076365s] ... 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-de88403e-ec00-4816-aee7-3163e4fb278e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason [0.070755s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance WITH {} GOT Response: 202 Accepted Openstack-Request-Id: req-4920975a-7f36-4a0b-a8c9-d172d0a802db X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_163_portgroups_ports_get_observer [0.078460s] ... 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-356fdda9-fd76-4340-8ad5-2743bc511d50 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_164_portgroups_ports_detail_get_admin [0.066864s] ... 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-79b4e8f0-9fef-4976-a3d8-0d6681804783 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason_by_name [0.070549s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/node-39/maintenance WITH {} GOT Response: 202 Accepted Openstack-Request-Id: req-18ba9586-9958-41f4-9143-9b322e3cf1a1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_165_portgroups_ports_detail_get_member [0.071686s] ... 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-4a2a4256-0653-4787-ba60-eab3f65fe22f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_cleanhold [0.101128s] ... 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-d681e782-f0b9-44e0-8565-8aade07e0ffe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.85 {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname [0.457201s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/pg.1 GOT Response: 204 No Content Openstack-Request-Id: req-dd24ec85-f761-4c51-87bc-98ae55cfcd40 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_166_portgroups_ports_detail_get_observer [0.081795s] ... 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-232b84c8-56ff-43f7-abef-58ac50ec42e3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_not_existed [0.079314s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/blah GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-13292721-772f-4f62-9400-8f695a429f3b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup blah could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_cleanhold_not_allowed [0.103747s] ... 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-8f0f991d-5971-41e0-b8f3-4b36fe510e12 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.84 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_167_volume_get_admin [0.061957s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-af37d38e-d713-4b75-8196-394be8b04d24 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]} {3} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_obj_versions [0.419421s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_with_json [0.089775s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/pg.1.json GOT Response: 204 No Content Openstack-Request-Id: req-a42e2f0b-581d-4694-a662-b7d1c774f563 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_168_volume_get_member [0.073863s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5bced9e1-bacc-4bc4-bd00-6e0efd6c639d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.command.test_status.TestUpgradeChecks.test__check_obj_versions_bad [0.051236s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_deployhold [0.088385s] ... 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-b4a71790-ca25-4b0c-a0a4-5fae8e8bb4e7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.85 {3} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_and [0.040645s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_invalid_api_version [0.067437s] ... 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\": \"\"}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_169_volume_get_observer [0.067785s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9d5e59eb-4aca-4d77-a099-d4a04b211378 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]} {3} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_boolean [0.043760s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_deployhold_not_allowed [0.090610s] ... 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-e17dbd06-2260-4358-b2e8-e032b7a712da X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.84 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_args [0.036113s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_170_volume_connectors_get_admin [0.078152s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f571c3a0-009a-4745-af51-498a16ee61e9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "d63a4fbf-26cd-45b8-9411-62427f5ba6ad", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/d63a4fbf-26cd-45b8-9411-62427f5ba6ad", "rel": "self"}, {"href": "http://localhost/volume/connectors/d63a4fbf-26cd-45b8-9411-62427f5ba6ad", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_node_locked [0.100391s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-b8046fa0-86cb-4813-b5f6-c701d814fdde X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_args_kwargs [0.041735s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unhold_servicehold [0.088920s] ... 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-62a0154b-d084-4df2-9c15-503c1fbcccba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.86 {3} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_function [0.043406s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_171_volume_connectors_get_member [0.070492s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-206e2a77-bf85-4dd4-bed4-f81d47e1ab38 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_kwargs [0.036257s] ... ok {3} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_integer [0.029414s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unrescue_raises_error_before_1_38 [0.076450s] ... 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-7edfb35b-f894-4965-a10b-4ea55435c993 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup [0.133287s] ... 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-36fb248c-c5b1-4a2f-93c2-8465ef4efc66 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6737d2b0-af4d-4c59-8600-0b6eb04c8481 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mac_address [0.021919s] ... ok {3} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mandatory [0.017160s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_chassis_notification [0.038503s] ... ok {3} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mixed_unvalidated [0.016708s] ... ok {3} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_name [0.015946s] ... ok {3} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_or [0.018980s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_common_params [0.041799s] ... ok {3} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_string [0.017964s] ... ok {3} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_string_list [0.017012s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_already_exist [0.116248s] ... 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-5da27089-0968-417a-aa65-c2f51b19c954 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:19.985392+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': '973e8095-e227-4ce0-a9de-5978d5d1a1a1', 'name': 'bebbc45b-088a-44c5-851d-089f3f4634b3', '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-ea784570-2ef8-4fcd-8ca4-043787b66310 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A portgroup with MAC address aa:aa:aa:11:22:33 already exists.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_emit_maintenance_notification [0.044415s] ... ok {3} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_unexpected_args [0.017589s] ... ok {3} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_uuid [0.016471s] ... ok {3} ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_uuid_or_name [0.018001s] ... ok {3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum [0.020449s] ... ok {3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_file_not_found [0.017833s] ... ok {3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_hashlib_not_supports_algo [0.017770s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_172_volume_connectors_get_observer [0.299294s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8bd1b5cf-4703-46be-a4d8-e04030527182 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "a2878f2e-be22-4a79-90e8-7b97479df8ee", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/a2878f2e-be22-4a79-90e8-7b97479df8ee", "rel": "self"}, {"href": "http://localhost/volume/connectors/a2878f2e-be22-4a79-90e8-7b97479df8ee", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_maintenance_notification [0.111322s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_normalized [0.112213s] ... 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-4515fe22-66f7-481a-9dd7-b636586b6516 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:20.108136+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-4f27faab-4200-4b5b-8d13-de7aff4cfbae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:20.108136+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.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_mismatch [0.017799s] ... ok {3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_mixed_case [0.016715s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification [0.036250s] ... ok {3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_mixed_case_delimited [0.024332s] ... ok {3} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsValidateTestCase.test_validate_checksum_mixed_md5 [0.019679s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_173_volume_connectors_post_admin [0.081254s] ... 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/05a05b7a-3b18-4878-8b35-62e20c871d27 Openstack-Request-Id: req-09f22589-8cef-41fd-ab46-536e85a211fb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "05a05b7a-3b18-4878-8b35-62e20c871d27", "created_at": "2025-05-07T22:58:20.208388+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/05a05b7a-3b18-4878-8b35-62e20c871d27", "rel": "self"}, {"href": "http://localhost/volume/connectors/05a05b7a-3b18-4878-8b35-62e20c871d27", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification_mask_secrets [0.041242s] ... ok {3} ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context [0.018564s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_default_mode [0.087384s] ... 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-124681b3-10b3-4422-ab3d-dd14ce809ccb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:20.212975+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.common.test_context.RequestContextTestCase.test_create_context_with_environ [0.016319s] ... ok {3} ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict [0.017106s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_port_notification [0.045358s] ... ok {3} ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict_older_api_server [0.016098s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_174_volume_connectors_post_member [0.070111s] ... 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-3ea70967-6aad-459c-8a2a-556d47210dc8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_with_context [0.018268s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_portgroup_notification [0.041583s] ... ok {3} ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_without_context [0.019017s] ... ok {3} ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_dict_get_auth_token_info [0.015882s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_doesnt_contain_id [0.111834s] ... 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-6938ec74-001f-46e3-9597-9b33969ab218 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:20.302089+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-08638f89-bb5d-412b-b30d-f9958d2cccfb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:20.302089+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.common.test_context.RequestContextTestCase.test_to_policy_values [0.015590s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_175_volume_connectors_post_observer [0.069566s] ... 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-b9f02342-483c-42b3-b4e4-17ba51040432 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_duplicated_entry [0.019236s] ... ok {3} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_empty_entry [0.020793s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byaddress [0.078641s] ... 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-9a17fda9-3f9b-48a7-9274-e66601328ef7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for port_uuid: 52:54:00:cf:2d:31\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_init_checks_unsupported [0.020392s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_176_volume_volume_connector_id_get_admin [0.072283s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/a51b13b9-745e-48ce-94ef-3c81c68e1a31 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6d3fd678-22ce-4c34-89e6-a2a33a04b3f3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a51b13b9-745e-48ce-94ef-3c81c68e1a31", "created_at": "2025-05-07T22:58:20.396512+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/a51b13b9-745e-48ce-94ef-3c81c68e1a31", "rel": "self"}, {"href": "http://localhost/volume/connectors/a51b13b9-745e-48ce-94ef-3c81c68e1a31", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_load_error_if_driver_enabled [0.019800s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_error [0.085394s] ... 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-79f1afa4-1918-49d4-966a-f26ee103bb96 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_no_driver_load_error_if_driver_disabled [0.020672s] ... ok {3} ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_wrap_in_driver_load_error_if_driver_enabled [0.018736s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byid [0.096080s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 204 No Content Openstack-Request-Id: req-00e76115-1951-4859-9c5b-76476f4d2d0c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_177_volume_volume_connector_id_get_member [0.071215s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/31659fac-1b9f-4822-b3c8-7502839d2396 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7bd3c718-47a7-42c8-872a-d8caf2c3f4b7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 31659fac-1b9f-4822-b3c8-7502839d2396 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task [0.038433s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.033366s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_portgroup.TestPost.test_create_portgroup_generate_uuid [0.110456s] ... 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/858f5394-5f06-4285-9d07-f5c86682c956 Openstack-Request-Id: req-274dc23c-7edb-41cd-9345-e698526b420a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "858f5394-5f06-4285-9d07-f5c86682c956", "created_at": "2025-05-07T22:58:20.507735+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/858f5394-5f06-4285-9d07-f5c86682c956", "rel": "self"}, {"href": "http://localhost/portgroups/858f5394-5f06-4285-9d07-f5c86682c956", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/858f5394-5f06-4285-9d07-f5c86682c956/ports", "rel": "self"}, {"href": "http://localhost/portgroups/858f5394-5f06-4285-9d07-f5c86682c956/ports", "rel": "bookmark"}]} GET /v1/portgroups/858f5394-5f06-4285-9d07-f5c86682c956 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-707407a4-10e0-4a58-abec-f65fddff17d4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "858f5394-5f06-4285-9d07-f5c86682c956", "created_at": "2025-05-07T22:58:20.507735+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/858f5394-5f06-4285-9d07-f5c86682c956", "rel": "self"}, {"href": "http://localhost/portgroups/858f5394-5f06-4285-9d07-f5c86682c956", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/858f5394-5f06-4285-9d07-f5c86682c956/ports", "rel": "self"}, {"href": "http://localhost/portgroups/858f5394-5f06-4285-9d07-f5c86682c956/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_178_volume_volume_connector_id_get_observer [0.071284s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/1279c006-ca60-4a9c-be6d-ecca0b04d179 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cf20935e-bea1-4413-a711-73cee440d948 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1279c006-ca60-4a9c-be6d-ecca0b04d179", "created_at": "2025-05-07T22:58:20.538486+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1279c006-ca60-4a9c-be6d-ecca0b04d179", "rel": "self"}, {"href": "http://localhost/volume/connectors/1279c006-ca60-4a9c-be6d-ecca0b04d179", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_unknown_network_interface [0.034462s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.019663s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_internal_info_not_allowed [0.068454s] ... 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-8a327e88-22d0-4805-806d-9499d41009f5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for portgroup: Additional properties are not allowed ('internal_info' was unexpected)\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_node_locked [0.116793s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-20cddffb-4231-4dea-9311-f3e7032dc098 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_179_volume_volume_connector_id_patch_admin [0.078037s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/eb2e5131-edd2-4db6-964e-affbf8ef1bc0 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-3cfa3c11-6c47-4ba5-b7a5-209b098dd006 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_addr_format [0.070778s] ... 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-1c3861b1-99ef-42c9-8530-f08e646787f2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-format\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_portgroups_subresource_delete [0.085029s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/943b269a-240b-403b-a496-1bb0e4b58caf GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-abf18854-2ae7-43db-85a5-8cfe695e24ca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_180_volume_volume_connector_id_patch_member [0.069768s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/01cf0973-ae81-4adb-8fbe-9f31dbd83cf5 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-394a91aa-9f17-4289-a30b-0a1d3061ca88 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 01cf0973-ae81-4adb-8fbe-9f31dbd83cf5 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_api_version [0.067872s] ... 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-e0696f16-e60c-41d7-9df0-ad5496a9c4ce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_181_volume_volume_connector_id_patch_observer [0.067884s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/6558354d-1a34-42c3-8dd4-8f96ed1039d7 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c2c127e0-0e25-49d9-aaaf-ba31df8cfab9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPortsByShard.test_get_by_shard_multi [0.104869s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?shard=shard1,shard2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-43fe3356-4de0-4781-a9ff-16a2da17aab3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"ports": [{"uuid": "492db4fd-7ded-4b65-b08b-b3d942092ff7", "address": "aa:bb:cc:dd:ee:ff", "links": [{"href": "http://localhost/v1/ports/492db4fd-7ded-4b65-b08b-b3d942092ff7", "rel": "self"}, {"href": "http://localhost/ports/492db4fd-7ded-4b65-b08b-b3d942092ff7", "rel": "bookmark"}]}, {"uuid": "48fb9f94-efc6-4511-b359-39b75f1819d4", "address": "ab:bb:cc:dd:ee:ff", "links": [{"href": "http://localhost/v1/ports/48fb9f94-efc6-4511-b359-39b75f1819d4", "rel": "self"}, {"href": "http://localhost/ports/48fb9f94-efc6-4511-b359-39b75f1819d4", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_node_uuid_format [0.064817s] ... 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-65f2dd88-af1a-47e2-aff3-7112fce13d2b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for node_uuid: invalid-format\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_182_volume_volume_connector_id_delete_admin [0.068383s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/a93b646a-0fcd-4949-b237-66cb2feb5412 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-99f32bf4-cf28-480a-a0cd-f82afbed901a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPortsByShard.test_get_by_shard_single [0.070291s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?shard=test_shard WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d92de4f6-1e6f-4928-82c7-8e3a8ffc5dfc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.82 {"ports": [{"uuid": "8349fc95-cdfa-4bd8-8a48-2b94d1e03546", "address": "aa:bb:cc:dd:ee:ff", "links": [{"href": "http://localhost/v1/ports/8349fc95-cdfa-4bd8-8a48-2b94d1e03546", "rel": "self"}, {"href": "http://localhost/ports/8349fc95-cdfa-4bd8-8a48-2b94d1e03546", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_old_api_version [0.090500s] ... 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-718ddb61-ea16-4a72-8978-3c3a513a148c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST /v1/portgroups WITH {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'properties': {'bond_prop': 123}} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-4c680a65-6557-4af7-a0b7-8f5e288a8d73 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_183_volume_volume_connector_id_delete_member [0.064213s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/f06dd7ac-def7-41fc-8251-115585bde484 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-55ded6ab-9f4b-4d3b-93c0-d3a87d916b9b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector f06dd7ac-def7-41fc-8251-115585bde484 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestListPortsByShard.test_get_by_shard_single_fail_api_version [0.065218s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports?shard=test_shard WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-fcddc59c-0a24-42e7-976a-a1ee260642e3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.82\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_184_volume_volume_connector_id_delete_observer [0.068425s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/d4343639-294e-459b-beb4-7e40db2393d8 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c45d5f55-76b3-45c4-89a3-a963811b8248 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_properties [0.089140s] ... 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-3d1c5a1e-6582-42a8-a2f8-7b4792ecdb7f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:20.987979+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_invalid [0.080417s] ... 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-2434dd22-b84e-4680-893c-aebffac1220d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create portgroup with invalid name 'aa:bb_cc'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port [0.179398s] ... 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-dbf8b511-9b9c-4e87-a106-cca49517ae8e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-81b386fa-1b75-46d2-8d68-de1ce014589a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_185_volume_targets_get_admin [0.163622s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-508a15e6-f22c-4321-a7b2-5119f4888e2f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "0b222ce0-b1bb-49ed-bb1a-4776f30c96e0", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/0b222ce0-b1bb-49ed-bb1a-4776f30c96e0", "rel": "self"}, {"href": "http://localhost/volume/targets/0b222ce0-b1bb-49ed-bb1a-4776f30c96e0", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_ok [0.122489s] ... 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-52a7b1cc-3711-4c9e-9b95-8c1891f240b9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:21.171242+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-3356b66a-ff10-4684-b829-feb449fe81e1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:21.171242+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"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_address [0.068938s] ... 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-d42aff2c-bc47-46e4-a32d-06c582c89627 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:21.261023+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-9d4ff7aa-7be9-4611-9d32-92943a6d64d7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:21.261023+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"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_186_volume_targets_get_member [0.124045s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-16ad7532-a115-4b6a-9dbd-7545232c492d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_already_exist [0.133541s] ... 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-aa50a042-2480-4958-92c1-691d10b3070a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address AA:AA:AA:11:22:33 already exists.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_mandatory_field_node_uuid [0.034579s] ... 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-d5106e06-ec1e-48bd-b2de-524cf73ff944 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for portgroup: 'node_uuid' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_node_uuid_not_found [0.033671s] ... 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-de3c3ccc-57d2-4e54-a859-2d394924522b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__config_auth [0.753697s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_v123 [0.051276s] ... 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-57f2a7ce-b0ca-456a-acab-adf5b2acc2d8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.23 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bab168cd-48eb-4dd0-b7b8-3552544e8968 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.23 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_187_volume_targets_get_observer [0.129482s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6ca75a04-b186-45f5-9c73-42fed17fb3e3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "dca20467-6834-45a9-912f-0577b516e4e1", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/dca20467-6834-45a9-912f-0577b516e4e1", "rel": "self"}, {"href": "http://localhost/volume/targets/dca20467-6834-45a9-912f-0577b516e4e1", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_valid_extra [0.050668s] ... 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-7e269118-e263-4513-9cd9-f45caa2b16a7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:21.433657+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-982ee0a1-4047-45fc-a8fa-cd92ee4e69dc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:21.433657+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_hyphens_delimiter [0.034739s] ... 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-d4754d32-cee4-47bf-880d-a516aff1b644 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: 52-54-00-cf-2d-31\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_node_uuid_to_node_id_mapping [0.042887s] ... 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-c036c134-d9c4-45af-8f69-47600e0c1d62 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:21.520503+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_188_volume_targets_post_admin [0.148035s] ... 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/d35dab7a-8a3a-4d9a-90aa-f316f643d6fc Openstack-Request-Id: req-ee503481-4be5-4ddf-a357-720428251080 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d35dab7a-8a3a-4d9a-90aa-f316f643d6fc", "created_at": "2025-05-07T22:58:21.549259+00:00", "updated_at": null, "boot_index": 4, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/d35dab7a-8a3a-4d9a-90aa-f316f643d6fc", "rel": "self"}, {"href": "http://localhost/volume/targets/d35dab7a-8a3a-4d9a-90aa-f316f643d6fc", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create [0.048137s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'a6a6f7a6-0be9-4181-9836-4f6761ebab28', '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/a6a6f7a6-0be9-4181-9836-4f6761ebab28 Openstack-Request-Id: req-5f0002ea-d954-4a63-9bf9-6f5fd3bd0853 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a6a6f7a6-0be9-4181-9836-4f6761ebab28", "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/a6a6f7a6-0be9-4181-9836-4f6761ebab28", "rel": "self"}, {"href": "http://localhost/runbooks/a6a6f7a6-0be9-4181-9836-4f6761ebab28", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /v1/runbooks/a6a6f7a6-0be9-4181-9836-4f6761ebab28 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e82c2e25-3e24-43af-84d2-5ba0b50e1d41 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a6a6f7a6-0be9-4181-9836-4f6761ebab28", "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/a6a6f7a6-0be9-4181-9836-4f6761ebab28", "rel": "self"}, {"href": "http://localhost/runbooks/a6a6f7a6-0be9-4181-9836-4f6761ebab28", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_complex_step_args [0.038065s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'd360f0bb-2d5a-4211-87ad-146f0799f3b3', '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/d360f0bb-2d5a-4211-87ad-146f0799f3b3 Openstack-Request-Id: req-8c0f3f35-5936-4e7b-8ee2-138c9d014242 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d360f0bb-2d5a-4211-87ad-146f0799f3b3", "created_at": "2025-05-07T22:58:21.611408+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/d360f0bb-2d5a-4211-87ad-146f0799f3b3", "rel": "self"}, {"href": "http://localhost/runbooks/d360f0bb-2d5a-4211-87ad-146f0799f3b3", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"foo": [{"bar": "baz"}]}, "order": 1}]} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_doesnt_contain_id [0.041508s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '6dceab91-1752-41ac-8a26-83698083993d', '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/6dceab91-1752-41ac-8a26-83698083993d Openstack-Request-Id: req-373a64b4-b29b-4717-aaf6-eaf87bf8cd64 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6dceab91-1752-41ac-8a26-83698083993d", "created_at": "2025-05-07T22:58:21.649201+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/6dceab91-1752-41ac-8a26-83698083993d", "rel": "self"}, {"href": "http://localhost/runbooks/6dceab91-1752-41ac-8a26-83698083993d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /v1/runbooks/6dceab91-1752-41ac-8a26-83698083993d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a01ca723-55c3-4dc6-8b96-b56573e17499 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6dceab91-1752-41ac-8a26-83698083993d", "created_at": "2025-05-07T22:58:21.649201+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/6dceab91-1752-41ac-8a26-83698083993d", "rel": "self"}, {"href": "http://localhost/runbooks/6dceab91-1752-41ac-8a26-83698083993d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_error [0.038755s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '13fc13e0-dbb1-452f-9058-b5dbd7c775f7', '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-4a803374-00f8-402b-9e2f-62587ba54637 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_189_volume_targets_post_member [0.142223s] ... 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-90756634-04f0-4388-a152-62fcf8ea54d6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_generate_uuid [0.045301s] ... 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/bd861980-bbdd-4cd1-9196-9fb169b8ade7 Openstack-Request-Id: req-05976846-f438-4ef5-ab7c-fa17fe3f1d32 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "bd861980-bbdd-4cd1-9196-9fb169b8ade7", "created_at": "2025-05-07T22:58:21.732065+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/bd861980-bbdd-4cd1-9196-9fb169b8ade7", "rel": "self"}, {"href": "http://localhost/runbooks/bd861980-bbdd-4cd1-9196-9fb169b8ade7", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /v1/runbooks/bd861980-bbdd-4cd1-9196-9fb169b8ade7 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bab172f6-ef66-48a2-b8e2-cc246533c742 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "bd861980-bbdd-4cd1-9196-9fb169b8ade7", "created_at": "2025-05-07T22:58:21.732065+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/bd861980-bbdd-4cd1-9196-9fb169b8ade7", "rel": "self"}, {"href": "http://localhost/runbooks/bd861980-bbdd-4cd1-9196-9fb169b8ade7", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} None {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_api_version [0.029627s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'dff5da14-2a6f-4470-8604-c15f9cf12e3d', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'order': 1}], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow runbooks\"}"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_field_empty_steps [0.037317s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '7f98b135-5f2d-4cb2-99b0-41fa44c205bb', 'steps': [], 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ccda3b1c-b0f4-407f-b9d6-9e6a31c2a5f9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: [] is too short\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_field_extra [0.035421s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '849dfaba-197e-44d2-868a-6d89b36741d8', '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-56e0b717-351e-4a13-b7b8-ff4598538656 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 1 is not of type 'object', 'null'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_190_volume_targets_post_observer [0.138737s] ... 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-0961cd39-7f76-4b04-9a44-e7b0a87c6311 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_normalized [0.583697s] ... 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-a348356c-f618-4e56-8f4a-a387ecbc037a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:21.820172+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-9128a311-26a1-4f57-8e09-45ffc01af81a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:21.820172+00:00", "updated_at": null, "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_field_foo [0.042239s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '42ca1a88-2ecd-4961-97ad-766df6e3ef9e', '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-4252d3ff-dc64-4efa-9084-c904f09801b3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: Additional properties are not allowed ('foo' was unexpected)\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_field_name [0.034688s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 1, 'uuid': 'c04af869-5fe1-4e43-a478-bb8a0ca70fde', '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-c7862cf0-7942-4415-9e60-4ddfc422da63 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 1 is not of type 'string'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_field_name_none [0.031883s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': None, 'uuid': '3202c3c1-7823-4b01-86f8-1af33b13d9db', '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-138386e2-ac96-43be-b0cb-a2801bfa47fb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: None is not of type 'string'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_field_steps [0.032697s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '3c549050-ab3e-4e01-a5a2-56cafe8b8b15', 'steps': {}, 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d8fd2593-ff74-4b7e-83fd-4a114f1756df X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: {} is not of type 'array'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_191_volume_volume_target_id_get_admin [0.139431s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/35e42cfa-9f36-43e8-ae4c-0623b5926921 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cb0707a7-b75f-40be-b0a6-cbf8a0d42b0b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "35e42cfa-9f36-43e8-ae4c-0623b5926921", "created_at": "2025-05-07T22:58:21.946335+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/35e42cfa-9f36-43e8-ae4c-0623b5926921", "rel": "self"}, {"href": "http://localhost/volume/targets/35e42cfa-9f36-43e8-ae4c-0623b5926921", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_args1 [0.034759s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '1a760bd0-7051-44e9-94b1-d94e41b9e310', '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-53ab11b5-a3b9-4b4c-8a5f-a1fa7d85ede8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'not a dict' is not of type 'object'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_doesnt_contain_id [0.169387s] ... 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-9fae0805-a296-477f-a9fa-4d4095006663 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:21.996004+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-a74c8625-6cc6-4327-b411-2c160414b971 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:21.996004+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"foo": 123}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_args2 [0.036797s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '241d397f-2aad-4649-b825-95b682a6d86f', '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-7fb3fdb0-92cf-457c-8522-d663f392e0d2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: [] is not of type 'object'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_foo [0.034327s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'a8f808b1-18e3-4bcb-978c-d272b5c2c040', '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-7652bddb-3f4b-45db-a260-dfc945fc9424 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: Additional properties are not allowed ('foo' was unexpected)\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_interface1 [0.035202s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'd781b9ce-74ee-45e2-94ab-3e945c53b2c7', '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-9bfc40e3-6d96-4bc1-9682-82f20fe1b808 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: [3] is not of type 'string'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_192_volume_volume_target_id_get_member [0.137706s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/dd6f2d22-a57f-440a-acd5-df205f67348d WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b7ff1865-1ec7-4e94-80aa-7f5dd752a714 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target dd6f2d22-a57f-440a-acd5-df205f67348d could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_interface2 [0.037216s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'a9fc33ac-4830-4178-ade1-433be28baf2d', '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-ef012a25-73de-4625-bf30-0e940c0c6725 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'foo' is not one of ['vendor', 'power', 'management', 'firmware', 'deploy', 'bios', 'raid']\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_error [0.143747s] ... 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-087e4ecc-69bd-4cf6-847d-bfdbfc1bc284 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_negative_order [0.045776s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '13d17d06-0487-42ea-a642-33929804963f', '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-e2bc5150-ea0c-4d1d-8d12-1474beab623d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: -1 is less than the minimum of 0\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_order [0.046891s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'dd1577e2-bf35-475a-9d59-35a03f51077b', '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-9583bcba-17b2-4bf3-adfc-6a0d4cbb6fd0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'not a number' does not match '^[0-9]+$'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_193_volume_volume_target_id_get_observer [0.141894s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/4a9b4cb4-9c07-43e4-9128-3e94bde6ed8f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-69bdd312-5e62-42d8-ba30-ecf77c8c26ef X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "4a9b4cb4-9c07-43e4-9128-3e94bde6ed8f", "created_at": "2025-05-07T22:58:22.226710+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/4a9b4cb4-9c07-43e4-9128-3e94bde6ed8f", "rel": "self"}, {"href": "http://localhost/volume/targets/4a9b4cb4-9c07-43e4-9128-3e94bde6ed8f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_invalid_step_field_step [0.047178s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '1c7fafa9-7a28-4674-a13f-2301700134b5', '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-fdb98aed-bc25-4619-9045-3003316d5bd5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 1 is not of type 'string'\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_long_name [0.046441s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': '3bd539d5-9eb9-4816-9b85-1388f6fb91cd', '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/3bd539d5-9eb9-4816-9b85-1388f6fb91cd Openstack-Request-Id: req-2c3aa3cd-f3ce-45b8-b460-a3c111e7b197 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "3bd539d5-9eb9-4816-9b85-1388f6fb91cd", "created_at": "2025-05-07T22:58:22.355729+00:00", "updated_at": null, "name": "CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/3bd539d5-9eb9-4816-9b85-1388f6fb91cd", "rel": "self"}, {"href": "http://localhost/runbooks/3bd539d5-9eb9-4816-9b85-1388f6fb91cd", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_generate_uuid [0.166933s] ... 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/4ddbada2-a85b-4bad-973d-f6aeab94caa9 Openstack-Request-Id: req-f6804b6b-c462-4a54-abfd-4a6ec8451088 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "4ddbada2-a85b-4bad-973d-f6aeab94caa9", "created_at": "2025-05-07T22:58:22.325126+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/4ddbada2-a85b-4bad-973d-f6aeab94caa9", "rel": "self"}, {"href": "http://localhost/ports/4ddbada2-a85b-4bad-973d-f6aeab94caa9", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} GET /v1/ports/4ddbada2-a85b-4bad-973d-f6aeab94caa9 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bbf111f4-f3f3-4e59-983f-7e936d50b68b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "4ddbada2-a85b-4bad-973d-f6aeab94caa9", "created_at": "2025-05-07T22:58:22.325126+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/4ddbada2-a85b-4bad-973d-f6aeab94caa9", "rel": "self"}, {"href": "http://localhost/ports/4ddbada2-a85b-4bad-973d-f6aeab94caa9", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_name_invalid_too_long [0.038717s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 'uuid': '6859cb56-f40d-40bd-870d-36de7430e9c6', '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-03ccf366-655b-4a26-9aab-b672f83ab64f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' is too long\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_no_mandatory_field_name [0.035771s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'uuid': '2e603d67-b86a-465f-9258-fcdf73d30ce1', '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-6fd0ce67-ca76-40af-8fc5-20625ab69beb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'name' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_addr_format [0.086181s] ... 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-6fd57f3e-2713-41e1-8bae-6aa1c57dcf5f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-format\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_no_mandatory_field_steps [0.035401s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '73cff962-bb2e-4486-b220-2dc445f216d4', 'disable_ramdisk': False, 'extra': {}, 'public': False, 'owner': None} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-51b18ce5-0ea2-41bb-85e8-7ab4e8fb2381 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'steps' is a required property\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_194_volume_volume_target_id_patch_admin [0.169824s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/16100d76-50dc-4550-b832-5d7866eb1dbd WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-0782f9de-76a7-4805-8bfa-f3ad4ffb0f39 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_node_uuid_format [0.079548s] ... 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-7cf6c923-df74-420b-963a-81651f760993 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for node_uuid: invalid-format\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_195_volume_volume_target_id_patch_member [0.137712s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/64aa1cbe-46b6-40ca-ade4-bbc0d38fde0b WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a919a538-887a-454a-ba87-056cc4902d85 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 64aa1cbe-46b6-40ca-ade4-bbc0d38fde0b could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__no_auth [1.313193s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_empty_string [0.123910s] ... 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-c6303096-a35c-4c4b-a9df-a3a5fcbadc87 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty value is required when setting physical_network\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_no_mandatory_step_field_interface [0.240424s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'd07a141a-0bed-42a3-956c-608d839d150f', '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-0ca219d7-f26a-4ff0-b14b-a7f4bc17a11a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'interface' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_no_mandatory_step_field_order [0.034306s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'b7e21d76-fef2-4974-8e83-535b88cf1baa', '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-1e3c8a77-1a16-4929-ba91-c5f8f8a4ead5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'order' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_non_text [0.085234s] ... 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-f6f068db-a7ca-493d-bfe1-25c19926972b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 1234 is not of type 'string', 'null'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_196_volume_volume_target_id_patch_observer [0.143457s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/f01ee581-aece-4f68-a250-1d015307134d WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-24cbc17d-3fd6-4362-ad1e-50f12b2bd578 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_no_mandatory_step_field_step [0.036403s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '23be02a9-52a6-49b9-9ee5-e097bde367d2', '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-6aa004d3-8dcb-4b83-816a-1b07f7ceb4eb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for runbook: 'step' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_public_runbook_project_scope_fails [0.037240s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '019d3459-faf5-4c95-8c47-49545b28096e', '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-3cab2cf0-d16f-4320-9b68-2b5e0950e876 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create a runbook as a project scoped admin with an owner other than your own project.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_too_long [0.087868s] ... 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-f714ab65-fe73-454a-aa57-f3c1ddf40602 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp' is too long\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_runbook_owner_project_scope_fails [0.040397s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'ef4b9400-2612-4f2c-8975-d7f855e499ba', '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-6702ac4a-f1fc-49b6-a7f9-cabfe4ba495c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create a runbook as a project scoped admin with an owner other than your own project.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_runbook_owner_system_scope [0.045461s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '69aa7218-46b1-4bc6-99c8-f5e2cd4d479c', '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/69aa7218-46b1-4bc6-99c8-f5e2cd4d479c Openstack-Request-Id: req-6a46b286-60f4-4df3-a4d7-4fff215bc655 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "69aa7218-46b1-4bc6-99c8-f5e2cd4d479c", "created_at": "2025-05-07T22:58:22.897980+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "catsay", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/69aa7218-46b1-4bc6-99c8-f5e2cd4d479c", "rel": "self"}, {"href": "http://localhost/runbooks/69aa7218-46b1-4bc6-99c8-f5e2cd4d479c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /v1/runbooks/69aa7218-46b1-4bc6-99c8-f5e2cd4d479c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-41e8da63-bf13-4e0a-bbc0-8842ed02dce0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "69aa7218-46b1-4bc6-99c8-f5e2cd4d479c", "created_at": "2025-05-07T22:58:22.897980+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "catsay", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/69aa7218-46b1-4bc6-99c8-f5e2cd4d479c", "rel": "self"}, {"href": "http://localhost/runbooks/69aa7218-46b1-4bc6-99c8-f5e2cd4d479c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_197_volume_volume_target_id_delete_admin [0.145850s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/4cc7b579-63ac-488e-9f97-8b98cc6f2bea GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-e8182902-84c9-4b3b-afa7-459e06c36933 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_runbook_project_scope [0.045329s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': 'b55429d6-583c-4ee4-bffa-ea9c4156343e', '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/b55429d6-583c-4ee4-bffa-ea9c4156343e Openstack-Request-Id: req-ca161412-003b-4092-ac38-79b411c8c718 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b55429d6-583c-4ee4-bffa-ea9c4156343e", "created_at": "2025-05-07T22:58:22.945408+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/b55429d6-583c-4ee4-bffa-ea9c4156343e", "rel": "self"}, {"href": "http://localhost/runbooks/b55429d6-583c-4ee4-bffa-ea9c4156343e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /v1/runbooks/b55429d6-583c-4ee4-bffa-ea9c4156343e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-203ca95c-2920-4ba8-ae25-2ef8cf4a959a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b55429d6-583c-4ee4-bffa-ea9c4156343e", "created_at": "2025-05-07T22:58:22.945408+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "projectX", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/b55429d6-583c-4ee4-bffa-ea9c4156343e", "rel": "self"}, {"href": "http://localhost/runbooks/b55429d6-583c-4ee4-bffa-ea9c4156343e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_runbook_system_scope [0.041980s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '8f5ba002-b09a-4cf9-98a1-0438915c4349', '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/8f5ba002-b09a-4cf9-98a1-0438915c4349 Openstack-Request-Id: req-137b0be0-0861-4ea8-8fca-1930809fb1b0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "8f5ba002-b09a-4cf9-98a1-0438915c4349", "created_at": "2025-05-07T22:58:22.988365+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/8f5ba002-b09a-4cf9-98a1-0438915c4349", "rel": "self"}, {"href": "http://localhost/runbooks/8f5ba002-b09a-4cf9-98a1-0438915c4349", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} GET /v1/runbooks/8f5ba002-b09a-4cf9-98a1-0438915c4349 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2bd92c17-6a50-421e-b7bc-baab0f80377c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "8f5ba002-b09a-4cf9-98a1-0438915c4349", "created_at": "2025-05-07T22:58:22.988365+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/8f5ba002-b09a-4cf9-98a1-0438915c4349", "rel": "self"}, {"href": "http://localhost/runbooks/8f5ba002-b09a-4cf9-98a1-0438915c4349", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_keys [0.159475s] ... 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-1e0bd453-1829-4b44-9e70-3aee89726018 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:22.979710+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.api.controllers.v1.test_runbook.TestPost.test_create_standard_trait_name [0.038900s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'HW_CPU_X86_VMX', 'uuid': '0352b2f2-e3ed-4c12-9c67-3683791b7582', '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/0352b2f2-e3ed-4c12-9c67-3683791b7582 Openstack-Request-Id: req-87efe95d-0587-4731-9525-1cad5eefb42c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "0352b2f2-e3ed-4c12-9c67-3683791b7582", "created_at": "2025-05-07T22:58:23.031925+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/0352b2f2-e3ed-4c12-9c67-3683791b7582", "rel": "self"}, {"href": "http://localhost/runbooks/0352b2f2-e3ed-4c12-9c67-3683791b7582", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_198_volume_volume_target_id_delete_member [0.131824s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/b7193b55-89db-466f-a2b2-8254a91fa6a7 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-be09a4be-d486-4e3c-a25d-21736c56b686 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target b7193b55-89db-466f-a2b2-8254a91fa6a7 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_step_string_order [0.056535s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '8f47721b-bc7d-456a-9bf8-240bc5288d7c', '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/8f47721b-bc7d-456a-9bf8-240bc5288d7c Openstack-Request-Id: req-9c521c75-ed7d-4829-8be7-04ee241d0a8d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "8f47721b-bc7d-456a-9bf8-240bc5288d7c", "created_at": "2025-05-07T22:58:23.087287+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/8f47721b-bc7d-456a-9bf8-240bc5288d7c", "rel": "self"}, {"href": "http://localhost/runbooks/8f47721b-bc7d-456a-9bf8-240bc5288d7c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": "1"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_mandatory [0.130655s] ... 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-9b30867e-adc6-4b39-88ff-d80be9d85389 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for local_link_connection: {'switch_id': '0a:1b:2c:3d:4e:5f', 'switch_info': 'fooswitch'} is not valid under any of the given schemas. Possible root cause: 'port_id' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_runbook.TestPost.test_create_steps_invalid_duplicate [0.073334s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/runbooks WITH {'name': 'CUSTOM_DT1', 'uuid': '82d6e8c2-0167-41ec-a286-e25c7c80394c', '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-a8ca8cc0-82af-41cd-a5d1-2adccefeae3c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Deploy template invalid: Duplicate deploy steps. A template cannot have multiple deploy steps with the same interface and step. Duplicates: interface: raid, step: create_configuration.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_199_volume_volume_target_id_delete_observer [0.134605s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/6e591372-539f-43f6-8fe5-4cc77378ea4f GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5af9d563-c448-4311-bbcd-f01ff5262566 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_agent_token [0.042068s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_configdrive_vendor_data [0.040931s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_deploy_steps [0.042084s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_optional [0.143487s] ... 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-23676d27-ecf7-4748-be55-d7237eccb5ec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:23.282595+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"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_200_nodes_volume_get_admin [0.123744s] ... 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-7302bbc1-7bfb-4398-be91-fb98796bcadb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_deploy_templates [0.040722s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_dynamic_drivers [0.041721s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inject_nmi [0.035734s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_switch_id_bad_mac [0.119270s] ... 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-270b3040-bb76-4740-b4d6-417beaa456a5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address or OpenFlow datapath ID but received zz:zz:zz:zz:zz:zz.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_201_nodes_volume_get_member [0.121948s] ... 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-081c5367-12f8-4ff2-85f8-65db71da4f33 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inspect_abort [0.045999s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_links_node_states_and_driver_properties [0.043704s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_min_api_version [0.120987s] ... 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-7208f8a6-d9de-43d0-b3e6-b42957ea5046 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:23.526075+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_node_rebuild_with_configdrive [0.036746s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_202_nodes_volume_get_observer [0.129877s] ... 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-47ae8aa9-bb94-4cee-980d-d07c3709b682 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_advanced_net_fields [0.040094s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_internal_info [0.036943s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_missing_address_fails [0.083634s] ... 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-943f4d6f-5d8d-4f2a-a0d1-e096cd7a7f51 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 'address' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_is_smartnic [0.047772s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_no_pin [0.032473s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_address [0.082455s] ... 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-a8275540-7167-49fb-92ec-a533ad9fb503 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 'address' is a required property\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_203_nodes_volume_connectors_get_admin [0.147965s] ... 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-3ea2bf6b-9dff-4df1-b802-8c222fddec62 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "984d3948-ef1f-40db-969a-2afaa6002bca", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/984d3948-ef1f-40db-969a-2afaa6002bca", "rel": "self"}, {"href": "http://localhost/volume/connectors/984d3948-ef1f-40db-969a-2afaa6002bca", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_pin [0.040218s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroup_mode_properties [0.040084s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_node_uuid [0.087367s] ... 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-29eaa298-6187-4941-9fe4-c15a943ab0aa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} is not valid under any of the given schemas. Possible root cause: 'node_ident' is a required property\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups [0.039433s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups_subcontrollers [0.040183s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_204_nodes_volume_connectors_get_member [0.133329s] ... 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-fcf655f3-0450-465c-bf8f-35970f29aef8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_ramdisk_endpoints [0.031627s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_node_uuid_not_found [0.115670s] ... 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-90ecc21c-2ca1-4368-acb7-e8f703606fd4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_remove_chassis_uuid [0.042941s] ... ok {3} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__token_auth [1.293455s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_rescue_interface [0.039540s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_storage_interface [0.039771s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_205_nodes_volume_connectors_get_observer [0.159213s] ... 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-bf6ef4f0-8f69-4d18-ada7-ebc7583d0d27 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "e2932b2b-a2c5-42a4-b4ad-532017c14181", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/e2932b2b-a2c5-42a4-b4ad-532017c14181", "rel": "self"}, {"href": "http://localhost/volume/connectors/e2932b2b-a2c5-42a4-b4ad-532017c14181", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_traits [0.032785s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_noportgroup [0.133220s] ... 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-9b387b95-83d7-4251-a355-b64f023125d9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:24.046697+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": false, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_volume [0.040794s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs [0.060136s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_206_nodes_volume_targets_get_admin [0.158570s] ... 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-08d23c01-b380-47c0-a368-35736d0b7e6a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "589a26e0-8613-4f9b-9776-aa4805bbb348", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/589a26e0-8613-4f9b-9776-aa4805bbb348", "rel": "self"}, {"href": "http://localhost/volume/targets/589a26e0-8613-4f9b-9776-aa4805bbb348", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs_fail [0.056263s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs [0.063368s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_nostandalone_ports [0.219823s] ... 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-e1801a19-a895-4be3-aac3-a34e0e9cbe1c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:24.255355+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": false, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs_fail [0.063650s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_207_nodes_volume_targets_get_member [0.150815s] ... 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-80beb9b1-5417-4d21-bb0f-0ff71e8e374f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs [0.057593s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs_fail [0.057427s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_standalone_ports [0.215558s] ... 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-03a93a98-140a-4ce3-8d19-ad54de216fcf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:24.485483+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": false, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive [0.063067s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_208_nodes_volume_targets_get_observer [0.173530s] ... 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-cc878676-0ae7-47a9-8155-73996de89348 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "02cc9fe2-0956-4986-aa1a-a1dcb5023f5f", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/02cc9fe2-0956-4986-aa1a-a1dcb5023f5f", "rel": "self"}, {"href": "http://localhost/volume/targets/02cc9fe2-0956-4986-aa1a-a1dcb5023f5f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict [0.062541s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_noportgroup [0.123264s] ... 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-2c0cabbb-3917-4d0c-84e8-96cc73ca0665 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:24.614977+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict_invalid [0.076774s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_209_drivers_get_admin [0.161732s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d5015130-dffa-4af5-8e8e-333569cdaa3c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"drivers": []} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_fails [0.080221s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_vendor_data_failed [0.071811s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_nostandalone_ports [0.193427s] ... 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-3baa849e-4ec1-44a1-9729-c20b65543e29 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port group 6eb02b44-18a3-4659-8c0b-8d2802581ae4 doesn't support standalone ports. This port cannot be created as a member of that portgroup as the port's 'pxe_enabled' field was set to True.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_210_drivers_get_member [0.139623s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cc2e96df-4de5-4fc0-b258-6d4e38815c59 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps [0.049801s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_empty [0.031986s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_target_unsupported [0.051382s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_standalone_ports [0.140986s] ... 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-8ef35506-02dd-4af4-a9be-8dc0483772aa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:24.948776+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_version_older [0.041226s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_211_drivers_get_observer [0.127357s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0f6091e0-2057-48ad-9490-b36772691ed6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"drivers": []} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_verbs [0.025781s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_verbs_fail [0.046776s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail [0.032475s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup [0.144761s] ... 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-d843eefb-40e0-41de-8761-05ea07221c90 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:25.094365+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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_212_drivers_driver_name_get_admin [0.122476s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-89895531-e026-41bc-af28-ea3471b0663b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_fail [0.038108s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_false [0.043871s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_none [0.044435s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_different_nodes [0.138280s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/ports WITH {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '9f5e8ac8-dd0f-4c57-b83d-889b55a798bf', '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-35debaae-8a63-465a-9a7d-10825b1d529d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 9f5e8ac8-dd0f-4c57-b83d-889b55a798bf could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_213_drivers_driver_name_get_member [0.134206s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9164f5a0-2aee-45cc-a864-0d9ad7b70f23 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group [0.039310s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group_fail [0.035765s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_by_conductor_group_none [0.035152s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type [0.028625s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_old_api_version [0.134025s] ... 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-477893e9-3b36-43fc-9230-58e1d3f04f5b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type_fail [0.039737s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_filter_driver_type_none [0.040620s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_inspect_verbs [0.040028s] ... ok {3} ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service_client_already_set [1.568544s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_inspect_verbs_fail [0.040765s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_forbidden_converts_to_imagenotauthed [0.041579s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs [0.038690s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found [0.199798s] ... 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-8b054237-c99c-4bee-8016-a7e711ab9f91 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_notfound_converts_to_imagenotfound [0.033789s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs_fail [0.040907s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs [0.023767s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_file_url [0.049162s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs_fail [0.038891s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_no_data [0.041086s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_driver [0.032877s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_driver_fail [0.037185s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_214_drivers_driver_name_get_observer [0.492828s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8f949317-acbc-4e13-9626-270694d49bf4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found_old_api_version [0.200795s] ... 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-cacd9df8-3560-4264-b181-0c913f29bb17 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_fields [0.039717s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_215_drivers_properties_get_admin [0.114274s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-960a3585-3893-4bda-bedc-3f711cab9132 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_some_invalid_local_link_connection_key [0.115762s] ... 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-1cad2066-896e-494c-8f4f-e2aa22212fde X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for local_link_connection: {'switch_id': 'value1', 'port_id': 'Ethernet1/15', 'switch_foo': 'value3'} is not valid under any of the given schemas. Possible root cause: Additional properties are not allowed ('switch_foo' was unexpected)\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_216_drivers_properties_get_member [0.162658s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7a1f48b3-602e-4933-925f-2073c5a8764f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get_properties\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_valid_extra [0.140472s] ... 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-77f9f0ea-9109-4057-bc84-1a064c9b15b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:26.022566+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-8206e160-5297-4088-a398-00ac3feea144 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:26.022566+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_noportgroup [0.134641s] ... 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-0267b954-0f8a-4bf3-b8e6-19f35d0b34d7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:26.181895+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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_217_drivers_properties_get_observer [0.136520s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-435e732d-cd24-4657-8835-e5fb45325c91 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_fields_fail [0.468599s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_resource_class [0.035527s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_specify_resource_class_fail [0.033428s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_undeploy_verbs [0.043445s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_218_drivers_raid_logical_disk_properties_get_admin [0.200747s] ... 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-4d5cdc05-3f9f-4267-9fb1-80f008f2ab7e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_undeploy_verbs_fail [0.036242s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_portgroup_standalone_ports [0.247198s] ... 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-af66a982-3555-4c3e-9558-f37f884f3f3d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:26.415182+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": false, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_unknown_verbs [0.054234s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_network_interface [0.034396s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_network_interface_fail [0.038820s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_219_drivers_raid_logical_disk_properties_get_member [0.156018s] ... 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-5cb319c1-cf5e-49f6-ab1b-24ac15cd856d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get_raid_logical_disk_properties\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_rescue_interface_fail [0.040815s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_noportgroup [0.143427s] ... 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-36fe62a3-9293-43ec-949b-473784d198df X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:26.589468+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": null} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class [0.039799s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_220_drivers_raid_logical_disk_properties_get_observer [0.090213s] ... 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-9f004ea3-be30-420a-b4b9-07d1935f0c17 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class_fail [0.040333s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_portgroup_fields_mode_properties [0.032089s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_portgroup_fields_mode_properties_fail [0.037667s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_nostandalone_ports [0.132964s] ... 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-1e02ca57-57f5-46e7-a8ad-698dd2274ee7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port group 6eb02b44-18a3-4659-8c0b-8d2802581ae4 doesn't support standalone ports. This port cannot be created as a member of that portgroup as the port's 'pxe_enabled' field was set to True.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_with_retries [1.044680s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_221_drivers_vendor_passthru_methods_get_admin [0.118976s] ... 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-272f6278-97a2-4d26-986a-ec8737bdf1ed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_multiple_node_policies_and_retrieve [0.046061s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_makes_datetimes [0.048437s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_multiple_node_policies_and_retrieve_first_fail [0.042404s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_passes_through_to_client [0.067369s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckMultipleNodePoliciesAndRetrieve.test_check_node_policy_and_retrieve_no_node [0.042425s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_standalone_ports [0.142019s] ... 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-8b719c5c-1565-4c7c-9380-dde42c6188eb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:26.857179+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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_222_drivers_vendor_passthru_methods_get_member [0.112526s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6bc8b277-472f-45dc-825a-e901383c71ca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_image_not_active [0.050424s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy [0.048864s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_no_authtoken_in_the_context [0.043234s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_both_node_ident_and_node_uuid [0.097135s] ... 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-b30cf7c3-4e18-4aba-b697-a2649956581f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'node_ident': 'test-node-name'} is valid under each of {'required': ['node_uuid']}, {'required': ['node_ident']}\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy_forbidden [0.073332s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_223_drivers_vendor_passthru_methods_get_observer [0.134769s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d9002673-1ba2-4493-aa12-6b48c6928687 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_add_items_to_cache [0.062019s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_async [0.047166s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_hyphens_delimiter [0.084322s] ... 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-ef2ee667-1ce2-4162-9bbf-0d12ab2e6c41 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: 52-54-00-cf-2d-31\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_do_not_return_expired_tempurls [0.070040s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_sync [0.076159s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_remove_expired_items_from_cache [0.059090s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_internal_field [0.110682s] ... 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-f871f7c3-8a90-4c05-98d1-f5dac41bdc26 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: Additional properties are not allowed ('internal_info' was unexpected)\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_224_drivers_vendor_passthru_get_admin [0.136306s] ... 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-580fa7d5-9efb-41db-9caf-db5b5836a0a5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_get_controller_reserved_names [0.048594s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_return_cached_tempurl [0.055782s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_method_not_specified [0.040191s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_async [0.038877s] ... ok {3} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_disabled [0.059902s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach [0.037960s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_225_drivers_vendor_passthru_get_member [0.126111s] ... 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-8037202f-bce3-405a-9836-1ae5612b4ae9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic [0.161986s] ... 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-ed11cd2f-4d6a-4450-b445-f024d3e0e038 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:27.310832+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": true, "local_link_connection": {"hostname": "host1", "port_id": "rep0-0"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_byte_to_byte [0.040709s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_unicode_to_byte [0.043524s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_226_drivers_vendor_passthru_get_observer [0.134447s] ... 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-c07bcf41-732b-49dd-987c-613305be51a1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_sync [0.062484s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_default_value [0.147575s] ... 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-bbddf3fe-3d9d-4c68-b5d9-6cc18e69c9c6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:27.475307+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links [0.113765s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d8496ce4-3e38-4b0b-9c1a-5838e6db7377 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "769659cb-7e8d-4233-92b6-85d93e79fe4b", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/769659cb-7e8d-4233-92b6-85d93e79fe4b", "rel": "self"}, {"href": "http://localhost/volume/targets/769659cb-7e8d-4233-92b6-85d93e79fe4b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "e66c90e7-eb8a-42c8-b819-f35406a64e7c", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/e66c90e7-eb8a-42c8-b819-f35406a64e7c", "rel": "self"}, {"href": "http://localhost/volume/targets/e66c90e7-eb8a-42c8-b819-f35406a64e7c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "1bbc6eba-00c2-4de0-9b7a-0b0400c1291c", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1bbc6eba-00c2-4de0-9b7a-0b0400c1291c", "rel": "self"}, {"href": "http://localhost/volume/targets/1bbc6eba-00c2-4de0-9b7a-0b0400c1291c", "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=1bbc6eba-00c2-4de0-9b7a-0b0400c1291c"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_227_drivers_vendor_passthru_post_admin [0.138673s] ... 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-92b3fced-8329-42ab-b9d2-6517477d2194 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_hostname [0.147664s] ... 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-03947fd1-acf2-481e-bafe-c31b1e6cec2d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Smart NIC port must have port_id and hostname in local_link_connection\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_custom_fields [0.078989s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8009e7e3-75e8-4206-a02d-fe9ee397e2ab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "8bdc202e-ffbf-4cef-8733-934c351f70f3", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/8bdc202e-ffbf-4cef-8733-934c351f70f3", "rel": "self"}, {"href": "http://localhost/volume/targets/8bdc202e-ffbf-4cef-8733-934c351f70f3", "rel": "bookmark"}]}, {"uuid": "b5207684-24b7-45af-8eb1-b75123da198d", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/b5207684-24b7-45af-8eb1-b75123da198d", "rel": "self"}, {"href": "http://localhost/volume/targets/b5207684-24b7-45af-8eb1-b75123da198d", "rel": "bookmark"}]}, {"uuid": "ac529b4c-d186-4762-a6d1-7cbc4f3028ca", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/ac529b4c-d186-4762-a6d1-7cbc4f3028ca", "rel": "self"}, {"href": "http://localhost/volume/targets/ac529b4c-d186-4762-a6d1-7cbc4f3028ca", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=ac529b4c-d186-4762-a6d1-7cbc4f3028ca"} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_default_limit [0.075987s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aa7ce6ec-0d6c-4c2c-a5ae-8d3444f81545 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "db63d7e0-0bd1-4e59-aaf8-78918cd2f5dd", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/db63d7e0-0bd1-4e59-aaf8-78918cd2f5dd", "rel": "self"}, {"href": "http://localhost/volume/targets/db63d7e0-0bd1-4e59-aaf8-78918cd2f5dd", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "59251ce3-56e3-46c0-87f4-a287f12e9707", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/59251ce3-56e3-46c0-87f4-a287f12e9707", "rel": "self"}, {"href": "http://localhost/volume/targets/59251ce3-56e3-46c0-87f4-a287f12e9707", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "67329f5f-ef01-4130-a952-0e9122c84508", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/67329f5f-ef01-4130-a952-0e9122c84508", "rel": "self"}, {"href": "http://localhost/volume/targets/67329f5f-ef01-4130-a952-0e9122c84508", "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=67329f5f-ef01-4130-a952-0e9122c84508"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_228_drivers_vendor_passthru_post_member [0.137590s] ... 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-53683930-85a9-43d1-a772-af80bfa1257e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_enabled [0.450385s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_port_id [0.122615s] ... 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-fd3758ba-211e-4e52-bfdd-465a07680ad4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for local_link_connection: {'switch_info': 'switch', 'switch_id': 'aa:bb:cc:dd:ee:ff', 'hostname': 'host'} is not valid under any of the given schemas. Possible root cause: 'port_id' is a required property\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test__hanlde_zstd_compression [0.046875s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_detail [0.097982s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?detail=True&limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-15b8d489-e7ef-4d45-a35b-754296ec696b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "ca6df73f-f1f7-4297-aa4f-41e42bc63a6e", "created_at": "2025-05-07T22:58:27.782731+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/ca6df73f-f1f7-4297-aa4f-41e42bc63a6e", "rel": "self"}, {"href": "http://localhost/volume/targets/ca6df73f-f1f7-4297-aa4f-41e42bc63a6e", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "7af2a79c-a070-443e-9934-0514d2cca3fc", "created_at": "2025-05-07T22:58:27.783450+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/7af2a79c-a070-443e-9934-0514d2cca3fc", "rel": "self"}, {"href": "http://localhost/volume/targets/7af2a79c-a070-443e-9934-0514d2cca3fc", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "af7dda87-5451-429c-b42b-623e0fd11058", "created_at": "2025-05-07T22:58:27.784127+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/af7dda87-5451-429c-b42b-623e0fd11058", "rel": "self"}, {"href": "http://localhost/volume/targets/af7dda87-5451-429c-b42b-623e0fd11058", "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=af7dda87-5451-429c-b42b-623e0fd11058"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_229_drivers_vendor_passthru_post_observer [0.125455s] ... 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-d8b1a477-e17d-4033-8432-cb9fb695a34c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test__hanlde_zstd_compression_disabled [0.072617s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_old_api_version [0.122854s] ... 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-3fc9c1b5-c240-4472-ab49-30953759a304 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.52 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_custom [0.048212s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail [0.096766s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1114dfce-978c-48cb-a42c-808c463b8115 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:27.904293+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.common.test_images.IronicImagesTestCase.test_converted_size_estimate_default [0.040402s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_against_single [0.062431s] ... 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-ec348ee0-e3cf-49c9-be4b-a39692f2726d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_230_drivers_vendor_passthru_put_admin [0.132182s] ... 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-d727c3e9-92b4-444c-a463-61630395a3e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_raw_smaller [0.039647s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_llc_old_api_version [0.133322s] ... 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-a01cde30-94ac-476d-a556-31d08166d1d6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_download_size [0.041916s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_and_fields [0.065403s] ... 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-81512f6b-76d6-42de-a22b-730067c61add X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service [0.052065s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_by_node_name_ok [0.082102s] ... 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-f4fabc9d-f742-4e64-b4a6-3ac56cb07050 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:28.108522+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_231_drivers_vendor_passthru_put_member [0.134762s] ... 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-8d60b145-3328-417e-ae39-3c55cf446c51 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_auth_data_checksum [0.051050s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_network_type_in_llc [0.149922s] ... 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-88063107-7573-42f2-a1c0-c91432ba2bd6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:28.151304+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.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_false [0.062786s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-600fc3af-46c1-4697-9fef-f1379b4ad22a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw [0.042146s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw_combined_algo [0.054951s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_232_drivers_vendor_passthru_put_observer [0.126464s] ... 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-9ea4001b-9e57-4fd8-bb5b-37ebda3b826f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_invalid_api_version [0.072584s] ... 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\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_network_type_in_llc_old_api_version [0.133394s] ... 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-1eb53dab-4473-4111-b106-552beb13669e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.63 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw_no_checksum_algo [0.060604s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_sepecified_by_path [0.056275s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/detail WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e0398b40-03f3-4e13-80d8-525af65301ee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for target_uuid: detail\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_233_drivers_vendor_passthru_delete_admin ... SKIPPED: not updated for scope testing {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw_with_checksum [0.071680s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_empty [0.081793s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4bf1fe33-3bbc-4635-b593-2b5e9947248a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": []} {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_with_checksum_mismatch [0.053449s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_node_ident [0.186350s] ... 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-db10c842-826c-4b88-a874-5ebe73023748 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:28.456137+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-507994eb-d5a4-4593-9399-b968e54526a5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:28.456137+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_image_service [0.041600s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_234_drivers_vendor_passthru_delete_observer ... SKIPPED: not updated for scope testing {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_no_image_service [0.037506s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_all_by_node_name_ok [0.155879s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-93a2e6bc-2359-4c89-9bb8-86207ee3f16b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "bbed6221-af7d-4548-a92a-7a7b6671a0db", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/bbed6221-af7d-4548-a92a-7a7b6671a0db", "rel": "self"}, {"href": "http://localhost/volume/targets/bbed6221-af7d-4548-a92a-7a7b6671a0db", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "8ddf8d9e-2a83-4227-af0f-51358e02bc7d", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/8ddf8d9e-2a83-4227-af0f-51358e02bc7d", "rel": "self"}, {"href": "http://localhost/volume/targets/8ddf8d9e-2a83-4227-af0f-51358e02bc7d", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "f66fd4ae-a173-4c33-b546-58556e60315f", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/f66fd4ae-a173-4c33-b546-58556e60315f", "rel": "self"}, {"href": "http://localhost/volume/targets/f66fd4ae-a173-4c33-b546-58556e60315f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_gpt [0.046240s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_node_ident_unsupported_api_version [0.132629s] ... 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-04df14d6-2a84-4a83-a61b-059ab55c8c23 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.93 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_gpt_backward_compatibility [0.048798s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_235_nodes_bios_get_admin [0.154969s] ... 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-4208509d-063b-405f-a076-ece7d03a1570 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"bios": [{"created_at": "2025-05-07T22:58:28.595553+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.common.test_images.IronicImagesTestCase.test_image_to_raw [0.046255s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_custom_fields [0.132950s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-97b720fb-37b2-4e97-b417-a775469debad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "1b00daa5-f076-447f-8d90-24de52a567df", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/1b00daa5-f076-447f-8d90-24de52a567df", "rel": "self"}, {"href": "http://localhost/volume/targets/1b00daa5-f076-447f-8d90-24de52a567df", "rel": "bookmark"}]}, {"uuid": "ea094de3-8132-4e07-ae86-8ae1cf092299", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/ea094de3-8132-4e07-ae86-8ae1cf092299", "rel": "self"}, {"href": "http://localhost/volume/targets/ea094de3-8132-4e07-ae86-8ae1cf092299", "rel": "bookmark"}]}, {"uuid": "b1812164-0212-4555-9e1b-749561691d25", "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/b1812164-0212-4555-9e1b-749561691d25", "rel": "self"}, {"href": "http://localhost/volume/targets/b1812164-0212-4555-9e1b-749561691d25", "rel": "bookmark"}]}]} {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_gpt_format [0.039675s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_iso [0.041306s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_236_nodes_bios_get_member [0.142247s] ... 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-51f12971-b33f-432e-990c-1c52640b0234 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_raw_format [0.039046s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_pagination_no_uuid [0.117555s] ... 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-d2e660b5-f14d-4c2a-88dd-f7e4beb3fb23 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"boot_index": 0, "links": [{"href": "http://localhost/v1/volume/targets/a1348e32-17ed-4e89-a46d-6b303ff86813", "rel": "self"}, {"href": "http://localhost/volume/targets/a1348e32-17ed-4e89-a46d-6b303ff86813", "rel": "bookmark"}]}, {"boot_index": 1, "links": [{"href": "http://localhost/v1/volume/targets/cddf591c-9c7f-4648-b2fb-6d9aa72fa886", "rel": "self"}, {"href": "http://localhost/volume/targets/cddf591c-9c7f-4648-b2fb-6d9aa72fa886", "rel": "bookmark"}]}], "next": "http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=boot_index&limit=2&marker=cddf591c-9c7f-4648-b2fb-6d9aa72fa886"} {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_fails_safety_check [0.050756s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_not_permitted_format [0.040826s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_custom_fields_invalid_fields [0.123305s] ... 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-a277718a-4820-41a3-a6a6-ba66a5710c60 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_237_nodes_bios_get_observer [0.154897s] ... 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-fb1cd321-ceef-4d73-a211-873f67271ea5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"bios": [{"created_at": "2025-05-07T22:58:28.903239+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.common.test_images.IronicImagesTestCase.test_image_to_raw_not_raw_after_conversion [0.044714s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_safety_check_disabled [0.050017s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one [0.096674s] ... 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-abbdeed1-8c88-4199-93d0-ead0c8cfd5fe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:29.028771+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.common.test_images.IronicImagesTestCase.test_image_to_raw_safety_check_disabled_fails_to_convert [0.058641s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_238_nodes_bios_bios_setting_get_admin [0.152154s] ... 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-a1826e6d-8fd8-467b-8131-dc7a00f45ff4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"FAKE_SETTING": {"created_at": "2025-05-07T22:58:29.046568+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}} {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_content_length [0.045695s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_custom_fields [0.081439s] ... 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-f8a2b9d0-9da8-4973-b6b4-b6d357d57be5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"boot_index": 0, "extra": {}, "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]} {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_content_type [0.044264s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_other_error [0.023724s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_invalid_api_version [0.080431s] ... 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\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_node_uuid [0.618976s] ... 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-ac2bca96-b910-40ce-baaa-2c99a7debd23 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:28.758660+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-bcf525e4-9a1a-4674-ae04-526db7a936ca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:28.758660+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_redirect [0.067101s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_239_nodes_bios_bios_setting_get_member [0.185346s] ... 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-80cc87e9-cc6f-4e65-8c3d-d06bc3fe8b74 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_links [0.103010s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/b3df3561-a5b7-43a6-b356-e7222e508774 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ef787537-c0e8-4cfe-910a-ab72ff106ca3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b3df3561-a5b7-43a6-b356-e7222e508774", "created_at": "2025-05-07T22:58:29.269665+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/b3df3561-a5b7-43a6-b356-e7222e508774", "rel": "self"}, {"href": "http://localhost/volume/targets/b3df3561-a5b7-43a6-b356-e7222e508774", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/volume/targets/b3df3561-a5b7-43a6-b356-e7222e508774 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6f17787e-c525-4aa5-abab-66bcac507b8a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b3df3561-a5b7-43a6-b356-e7222e508774", "created_at": "2025-05-07T22:58:29.269665+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/b3df3561-a5b7-43a6-b356-e7222e508774", "rel": "self"}, {"href": "http://localhost/volume/targets/b3df3561-a5b7-43a6-b356-e7222e508774", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /volume/targets/b3df3561-a5b7-43a6-b356-e7222e508774 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-eb76e646-151f-4cf3-a5ca-f35795b97948 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b3df3561-a5b7-43a6-b356-e7222e508774", "created_at": "2025-05-07T22:58:29.269665+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/b3df3561-a5b7-43a6-b356-e7222e508774", "rel": "self"}, {"href": "http://localhost/volume/targets/b3df3561-a5b7-43a6-b356-e7222e508774", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_returns_none [0.043959s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_simple [0.044452s] ... ok {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_explicit [0.042379s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_many [0.097959s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bd2522fe-5e85-4f95-97c7-87e9aed0596d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "b2fcfb58-31b7-4d9a-8cee-8e34b3a3c371", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/b2fcfb58-31b7-4d9a-8cee-8e34b3a3c371", "rel": "self"}, {"href": "http://localhost/volume/targets/b2fcfb58-31b7-4d9a-8cee-8e34b3a3c371", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "d03f2917-ad42-4435-8584-c8d2f1553165", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/d03f2917-ad42-4435-8584-c8d2f1553165", "rel": "self"}, {"href": "http://localhost/volume/targets/d03f2917-ad42-4435-8584-c8d2f1553165", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "25b7b0e5-dc1c-487b-9399-9f655fc370a7", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/25b7b0e5-dc1c-487b-9399-9f655fc370a7", "rel": "self"}, {"href": "http://localhost/volume/targets/25b7b0e5-dc1c-487b-9399-9f655fc370a7", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "44d2f831-a234-4fe5-9170-739d894716e7", "boot_index": 3, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/44d2f831-a234-4fe5-9170-739d894716e7", "rel": "self"}, {"href": "http://localhost/volume/targets/44d2f831-a234-4fe5-9170-739d894716e7", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "7ece6148-ef76-47cc-8923-ba5be481ac8f", "boot_index": 4, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/7ece6148-ef76-47cc-8923-ba5be481ac8f", "rel": "self"}, {"href": "http://localhost/volume/targets/7ece6148-ef76-47cc-8923-ba5be481ac8f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network [0.172566s] ... 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-d9c9ee3a-2f20-4189-bd6e-c009fa26e72c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:29.395625+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"} {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_no_img_src [0.045753s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one [0.067275s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a45f46e7-96a2-4690-8340-12740e833739 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image [0.045191s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_240_nodes_bios_bios_setting_get_observer [0.220891s] ... 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-af264516-3e01-44ad-a499-3c73eb377d11 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"FAKE_SETTING": {"created_at": "2025-05-07T22:58:29.444937+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.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_old_api_version [0.134273s] ... 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-39aaef86-6ccb-43ed-816a-32607f236e71 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image_with_type [0.048569s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one_invalid_api_version [0.060506s] ... 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\": \"\"}"} {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_non_glance [0.046338s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key [0.085720s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cc50405e-0a92-4492-9aa1-afe3800ad9bf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "07a84e03-18b4-44af-8a1c-013ce60cdba4", "boot_index": 1, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/07a84e03-18b4-44af-8a1c-013ce60cdba4", "rel": "self"}, {"href": "http://localhost/volume/targets/07a84e03-18b4-44af-8a1c-013ce60cdba4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "9b51d33c-ccdf-4b6e-8a55-ca674497d63e", "boot_index": 2, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/9b51d33c-ccdf-4b6e-8a55-ca674497d63e", "rel": "self"}, {"href": "http://localhost/volume/targets/9b51d33c-ccdf-4b6e-8a55-ca674497d63e", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}, {"uuid": "e77018ee-f501-4894-b941-0d3e4ec70f8b", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/e77018ee-f501-4894-b941-0d3e4ec70f8b", "rel": "self"}, {"href": "http://localhost/volume/targets/e77018ee-f501-4894-b941-0d3e4ec70f8b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_image [0.050736s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_upgrade [0.134637s] ... 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-a221f6a2-37c5-4af2-a642-cf04405147de X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_image_oci [0.044859s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key_invalid [0.076966s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a52c10f5-3156-48a3-b05e-5afefc6764dc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/volume/targets?sort_key=extra WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-16b4669a-2bfc-4855-a019-5bc990f4317b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/volume/targets?sort_key=properties WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6a5ff5df-186c-458d-8992-2e327b89a35f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_non_glance [0.057197s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_241_conductors_get_admin [0.244803s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ebf765d5-16ad-41eb-b794-84efe1337141 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": [{"hostname": "test-conductor-node", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}]} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_pxe_enabled_old_api_version [0.110796s] ... 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-f743f261-77a7-4781-bd28-9aa91ae4b2e9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_multi [0.090768s] ... 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-82ace96f-ef04-4b1f-bb4a-e6b73c8ec516 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:29.770446+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"} {3} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_get_method_masked [0.083284s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_id [0.068055s] ... 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-973ad3d9-90ca-4e58-b182-a0f5d2901093 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: boot_index, extra, node_uuid, properties, volume_id, volume_type\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_without_node_or_node_uuid [0.086119s] ... 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-51ef1c33-a53c-4d85-892d-745767477bc2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'name': None, 'description': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} is not valid under any of the given schemas. Possible root cause: 'node_ident' is a required property\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_getitem_masked [0.059647s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_242_conductors_get_member [0.202971s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cfb62ece-a721-452a-a5cf-02deb6e022cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_getitem_not_masked [0.083258s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_node_uuid_to_node_id_mapping [0.146274s] ... 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-3f397f49-52d7-4be0-8cc4-397c4a75af7b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:30.014246+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": null, "description": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid [0.156879s] ... 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-2cc8209c-90fa-4fe5-b0cc-0dc487ea241c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:29.971637+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.common.test_inspection_rule.TestShallowMask.test_items_masked [0.079031s] ... ok {3} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_list_masking [0.074308s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_portgroups_subresource_post [0.112272s] ... 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-e64d75a7-1ac8-402e-a711-8694fc6232ad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid_invalid_type [0.111203s] ... 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-7d24b14a-fe5d-490f-969f-fb5c6b2e28fe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_243_conductors_get_observer [0.178126s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-be22ad69-66be-4c57-b35a-ca5efc8c89c5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": [{"hostname": "test-conductor-node", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}]} {3} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_modifying_dict [0.088961s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links [0.094701s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/?limit=3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2c679527-5351-4dcc-a61e-3af561986118 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "4e402c64-89df-4c54-a607-11109727f8a3", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/4e402c64-89df-4c54-a607-11109727f8a3", "rel": "self"}, {"href": "http://localhost/portgroups/4e402c64-89df-4c54-a607-11109727f8a3", "rel": "bookmark"}]}, {"uuid": "6ab590fe-08fc-492a-9880-3d0fb29c84a9", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/6ab590fe-08fc-492a-9880-3d0fb29c84a9", "rel": "self"}, {"href": "http://localhost/portgroups/6ab590fe-08fc-492a-9880-3d0fb29c84a9", "rel": "bookmark"}]}, {"uuid": "da52294f-46d9-4745-89c6-8d8b5d1d0bc0", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/da52294f-46d9-4745-89c6-8d8b5d1d0bc0", "rel": "self"}, {"href": "http://localhost/portgroups/da52294f-46d9-4745-89c6-8d8b5d1d0bc0", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=da52294f-46d9-4745-89c6-8d8b5d1d0bc0"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_244_conductors_hostname_get_admin [0.126892s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e62501ed-88d0-447d-971b-a33d1f2f79e5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2025-05-07T22:58:30.252870+00:00", "updated_at": "2025-05-07T22:58:30.253647+00:00", "hostname": "test-conductor-node", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true} {3} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_nested_dict_masking [0.073965s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root [0.158770s] ... 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-f97a85dc-0f1e-4f1c-a83c-507dc7a64fbe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:30.239728+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"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links_custom_fields [0.083867s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?fields=address,uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0a45690a-a7e0-40b7-a6b1-01d7b446302d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "7315f400-219d-4fcf-9484-3538062669ff", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/portgroups/7315f400-219d-4fcf-9484-3538062669ff", "rel": "self"}, {"href": "http://localhost/portgroups/7315f400-219d-4fcf-9484-3538062669ff", "rel": "bookmark"}]}, {"uuid": "b61e544c-0f68-46d2-88a4-5be327fefa83", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/portgroups/b61e544c-0f68-46d2-88a4-5be327fefa83", "rel": "self"}, {"href": "http://localhost/portgroups/b61e544c-0f68-46d2-88a4-5be327fefa83", "rel": "bookmark"}]}, {"uuid": "d0e2a39e-ddcd-4f5e-9406-76ee91b4b597", "address": "52:54:00:cf:2d:32", "links": [{"href": "http://localhost/v1/portgroups/d0e2a39e-ddcd-4f5e-9406-76ee91b4b597", "rel": "self"}, {"href": "http://localhost/portgroups/d0e2a39e-ddcd-4f5e-9406-76ee91b4b597", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=d0e2a39e-ddcd-4f5e-9406-76ee91b4b597"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links_default_limit [0.044724s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7f44166d-d173-473d-9588-5e72a7bfd629 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "b0c496ec-9532-4777-a9f4-f38ad12ed058", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/b0c496ec-9532-4777-a9f4-f38ad12ed058", "rel": "self"}, {"href": "http://localhost/portgroups/b0c496ec-9532-4777-a9f4-f38ad12ed058", "rel": "bookmark"}]}, {"uuid": "9ca05744-af2e-4801-b639-6419c436e21e", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/9ca05744-af2e-4801-b639-6419c436e21e", "rel": "self"}, {"href": "http://localhost/portgroups/9ca05744-af2e-4801-b639-6419c436e21e", "rel": "bookmark"}]}, {"uuid": "30343487-d535-467c-bff9-209e5273b6f5", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/30343487-d535-467c-bff9-209e5273b6f5", "rel": "self"}, {"href": "http://localhost/portgroups/30343487-d535-467c-bff9-209e5273b6f5", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=30343487-d535-467c-bff9-209e5273b6f5"} {3} ironic.tests.unit.common.test_inspection_rule.TestShallowMask.test_set_mask_enabled [0.093274s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail [0.034715s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a8209175-1c19-43f2-9d3b-0e4d38cff960 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:30.399322+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root_non_existent [0.119747s] ... 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-536e2569-0aa9-4e73-a621-c4f3bf8993bb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: boot_index, extra, node_uuid, properties, volume_id, volume_type\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_against_single [0.030222s] ... 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-53062e76-ccc1-49bb-ac61-753f12558549 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_245_conductors_hostname_get_member [0.158172s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-32bb3d82-17c3-4714-a680-5aa6a8ceb682 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_by_node_name_ok [0.037805s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cbd4e27b-f5ea-4437-8919-89d3d63bf79e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:30.468453+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.common.test_inspection_rule.TestShallowMask.test_values_masked [0.088002s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_invalid_api_version [0.047531s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_mandatory_field [0.138822s] ... 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-ace9e977-52ca-487d-84ab-860676000a72 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'boot_index' is a required property\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated [0.086985s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query [0.070715s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?detail=True WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b57d06d6-6141-4909-b961-7d8162acbb45 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:30.576044+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_246_conductors_hostname_get_observer [0.146355s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9b9236e3-1229-45cd-bee5-9ee8cb6dcc0f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2025-05-07T22:58:30.546067+00:00", "updated_at": "2025-05-07T22:58:30.546616+00:00", "hostname": "test-conductor-node", "conductor_group": "", "drivers": ["fake-driver", "null-driver"], "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true} {3} ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated_no_admin_role [0.089677s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query_false [0.079013s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7391d859-d10a-4633-83b6-45098ed1bfe4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} GET /v1/portgroups?detail=False WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-41ff1fc0-f06f-429b-9b32-494e4673ff1d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {3} ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated_no_allowed_role [0.073947s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_247_allocations_post_admin [0.138541s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c12f98d0-b122-4e17-98a9-0959e6dcce90 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_allowed [0.092378s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail?sort_key=mode WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-07298ba7-5c58-4e9d-9404-95900a8ed598 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6a069dc9-3c5a-4a19-9abd-544062484e49", "created_at": "2025-05-07T22:58:30.743594+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/6a069dc9-3c5a-4a19-9abd-544062484e49", "rel": "self"}, {"href": "http://localhost/portgroups/6a069dc9-3c5a-4a19-9abd-544062484e49", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6a069dc9-3c5a-4a19-9abd-544062484e49/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6a069dc9-3c5a-4a19-9abd-544062484e49/ports", "rel": "bookmark"}]}, {"uuid": "f9260297-c9f4-4ba8-81a4-7aa3dff6b7ca", "created_at": "2025-05-07T22:58:30.740579+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/f9260297-c9f4-4ba8-81a4-7aa3dff6b7ca", "rel": "self"}, {"href": "http://localhost/portgroups/f9260297-c9f4-4ba8-81a4-7aa3dff6b7ca", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/f9260297-c9f4-4ba8-81a4-7aa3dff6b7ca/ports", "rel": "self"}, {"href": "http://localhost/portgroups/f9260297-c9f4-4ba8-81a4-7aa3dff6b7ca/ports", "rel": "bookmark"}]}, {"uuid": "0654dd0c-8982-4e9c-9cef-cef8e70ca123", "created_at": "2025-05-07T22:58:30.734133+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/0654dd0c-8982-4e9c-9cef-cef8e70ca123", "rel": "self"}, {"href": "http://localhost/portgroups/0654dd0c-8982-4e9c-9cef-cef8e70ca123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/0654dd0c-8982-4e9c-9cef-cef8e70ca123/ports", "rel": "self"}, {"href": "http://localhost/portgroups/0654dd0c-8982-4e9c-9cef-cef8e70ca123/ports", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_multi [0.233681s] ... 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-ad63489b-26f0-44d6-b8c5-d21786144516 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:30.654923+00:00", "updated_at": "2025-05-07T22:58:30.657941+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-fbceb397-437d-4663-a8f5-850c451a2419 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:30.654923+00:00", "updated_at": "2025-05-07T22:58:30.657941+00:00", "boot_index": 0, "extra": {}, "properties": {"target_iqn": "iqn.foo"}, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_not_allowed [0.069731s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail?sort_key=mode WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b5a8a77b-b84f-4fa3-9fe4-38eed50d3113 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_json_rpc.TestService.test_authenticated_with_allowed_role [0.105464s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_248_allocations_post_member ... SKIPPED: This endpoint's behavior supports allocation creation as a member with the new Role Based Access Control changes. Thus this test cannot both ensure prior and post-change behavior as it is actually valid moving forward. {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_node_id [0.099903s] ... 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-79faf193-2a69-4b14-992f-a50867ded597 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: boot_index, extra, node_uuid, properties, volume_id, volume_type\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_and_fields [0.061047s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?detail=True&fields=name WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b5865c01-9357-47f4-b09a-e855af269482 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_json_rpc.TestService.test_expected_failure [0.075692s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_false_and_fields [0.073913s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?detail=False&fields=internal_info WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-12fe21cf-18d5-487c-9746-d6e49fc86e55 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"internal_info": {"bar": "buzz"}, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {3} ironic.tests.unit.common.test_json_rpc.TestService.test_expected_failure_oslo [0.069611s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_249_allocations_post_observer [0.158180s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-86a402df-bd77-473b-a8b1-229d7bfac587 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_old_version [0.070566s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?detail=True WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-eeb6d083-1770-4553-b6c5-1c885d2b25ec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.42 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_json_rpc.TestService.test_http_basic [0.064098s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_empty [0.065491s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d9964e7b-dbc1-421d-ba46-c812f2f17fd9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": []} {3} ironic.tests.unit.common.test_json_rpc.TestService.test_http_basic_not_authenticated [0.069562s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_250_allocations_get_admin [0.144589s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-48145750-1018-4633-922a-809fc5716608 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "d0d5d4fd-5730-47ce-9a10-e564605ac3cf", "created_at": "2025-05-07T22:58:31.092530+00:00", "updated_at": "2025-05-07T22:58:31.101367+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/d0d5d4fd-5730-47ce-9a10-e564605ac3cf", "rel": "self"}, {"href": "http://localhost/allocations/d0d5d4fd-5730-47ce-9a10-e564605ac3cf", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} {3} ironic.tests.unit.common.test_json_rpc.TestService.test_invalid_requests [0.069590s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_name_ok [0.120115s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?node=test-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c7f8fd86-bc9f-4084-a45e-7a13f74c8034 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "5ef6fa72-ee3c-44e8-bcaf-04e76628db59", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/5ef6fa72-ee3c-44e8-bcaf-04e76628db59", "rel": "self"}, {"href": "http://localhost/portgroups/5ef6fa72-ee3c-44e8-bcaf-04e76628db59", "rel": "bookmark"}]}, {"uuid": "4f4f2c67-2529-428c-aa45-8e61bb41165c", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/4f4f2c67-2529-428c-aa45-8e61bb41165c", "rel": "self"}, {"href": "http://localhost/portgroups/4f4f2c67-2529-428c-aa45-8e61bb41165c", "rel": "bookmark"}]}, {"uuid": "9c26bb2a-2361-4b99-9665-d54a54537723", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/9c26bb2a-2361-4b99-9665-d54a54537723", "rel": "self"}, {"href": "http://localhost/portgroups/9c26bb2a-2361-4b99-9665-d54a54537723", "rel": "bookmark"}]}]} {3} ironic.tests.unit.common.test_json_rpc.TestService.test_malformed_context [0.084009s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_251_allocations_get_member [0.123659s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cc6e950f-e7a6-4602-8433-12dfb18518cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_uuid_ok [0.077025s] ... 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-f4bb27c6-83eb-4a4c-9f5b-ba2c292d706d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:31.295388+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_portgroup.TestListPortgroups.test_get_all_ports_by_portgroup_uuid [0.109391s] ... 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-8aba17ea-82de-4c05-8892-e32f1afc5bd5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_252_allocations_get_observer [0.154721s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-544480c9-77f7-4038-8056-cb3eb80c5b77 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "5040fdc1-42ac-40f6-93ad-afcc3bd96eaf", "created_at": "2025-05-07T22:58:31.368604+00:00", "updated_at": "2025-05-07T22:58:31.372294+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/5040fdc1-42ac-40f6-93ad-afcc3bd96eaf", "rel": "self"}, {"href": "http://localhost/allocations/5040fdc1-42ac-40f6-93ad-afcc3bd96eaf", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_non_existent_property_fail [0.580391s] ... 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-1f62b5ff-6a5a-4285-a890-3182c22ee5a9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove a non-existent object 'non-existent'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_custom_fields [0.093979s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?fields=uuid,extra WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-770a2d53-9e3e-40bc-a250-960dc292a635 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "57756c8b-b0ae-4e21-939f-35628fd4d965", "extra": {}, "links": [{"href": "http://localhost/v1/portgroups/57756c8b-b0ae-4e21-939f-35628fd4d965", "rel": "self"}, {"href": "http://localhost/portgroups/57756c8b-b0ae-4e21-939f-35628fd4d965", "rel": "bookmark"}]}, {"uuid": "9acd73d0-f27c-48cc-9c11-f65d03d31d85", "extra": {}, "links": [{"href": "http://localhost/v1/portgroups/9acd73d0-f27c-48cc-9c11-f65d03d31d85", "rel": "self"}, {"href": "http://localhost/portgroups/9acd73d0-f27c-48cc-9c11-f65d03d31d85", "rel": "bookmark"}]}, {"uuid": "ba78b336-173b-439d-8371-31ae92ea22cc", "extra": {}, "links": [{"href": "http://localhost/v1/portgroups/ba78b336-173b-439d-8371-31ae92ea22cc", "rel": "self"}, {"href": "http://localhost/portgroups/ba78b336-173b-439d-8371-31ae92ea22cc", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_uuid [0.079790s] ... 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-33f9478b-4858-449f-831f-f1c51d3645a6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: boot_index, extra, node_uuid, properties, volume_id, volume_type\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_pagination_no_uuid [0.090259s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?fields=address&limit=2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-09d39ffa-dd00-4ee9-bfaa-73a7a79123cd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/portgroups/128bc011-8b77-45ae-ad86-315b144072d8", "rel": "self"}, {"href": "http://localhost/portgroups/128bc011-8b77-45ae-ad86-315b144072d8", "rel": "bookmark"}]}, {"address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/portgroups/3b06df7d-d9b3-4da1-9918-461bd1babcb0", "rel": "self"}, {"href": "http://localhost/portgroups/3b06df7d-d9b3-4da1-9918-461bd1babcb0", "rel": "bookmark"}]}], "next": "http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=3b06df7d-d9b3-4da1-9918-461bd1babcb0"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_253_allocations_allocation_id_get_admin [0.192475s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/b9cadb05-5d7d-4fc6-a195-85f9f0acb5c2 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-869b35fa-9e48-447d-a700-a944f441711a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b9cadb05-5d7d-4fc6-a195-85f9f0acb5c2", "created_at": "2025-05-07T22:58:31.552574+00:00", "updated_at": "2025-05-07T22:58:31.556567+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/b9cadb05-5d7d-4fc6-a195-85f9f0acb5c2", "rel": "self"}, {"href": "http://localhost/allocations/b9cadb05-5d7d-4fc6-a195-85f9f0acb5c2", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_properties_field_lower_api_version [0.079439s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/?fields=address,properties WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-065caa8a-2c2e-4d30-a600-7442b5eac89f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_boot_index_already_exist [0.161736s] ... 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-77be4233-a4cf-4728-8632-ca1039fb52b3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume target with boot index '100' for the same node already exists.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_invalid_power_state [0.059535s] ... 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-f6068541-d0e2-43d9-b375-f0e959d58d04 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"volume target update\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"power on\\\".\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_custom_fields_invalid_fields [0.120094s] ... 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-cf6d4932-f3b1-4d4f-becf-4d1e662a815c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_multi [0.051561s] ... 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-4fe72556-85ba-4e3b-bdcb-a88a441860f8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:31.829583+00:00", "updated_at": "2025-05-07T22:58:31.832242+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.common.test_json_rpc.TestService.test_mask_secrets [0.577019s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_id [0.039985s] ... 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-7efe7f7f-8316-44df-a2e8-c9eb0e6fe477 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: boot_index, extra, node_uuid, properties, volume_id, volume_type\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_254_allocations_allocation_id_get_member [0.212452s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/e9c331bd-8844-43ce-9633-86a444a826b2 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-77141fc0-065f-4522-9ca9-ae4dba95646d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation e9c331bd-8844-43ce-9633-86a444a826b2 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid [0.044613s] ... 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-c86f6d9b-5d7a-4ec9-a912-a35ded723f8c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:31.919862+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_portgroup.TestListPortgroups.test_get_one [0.136927s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fe216bdc-83b8-4e09-bb0e-b99e57d283d0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:31.895470+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.common.test_json_rpc.TestService.test_method_not_found [0.088728s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid_inalid_type [0.045566s] ... 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-ff29d1de-98c5-4104-80d9-ff2f2d90be71 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_json_rpc.TestService.test_method_not_post [0.044606s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_custom_fields [0.098273s] ... 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-f77bb041-dc91-4c8f-84a7-98de0b29f16a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"address": "52:54:00:cf:2d:31", "extra": {}, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]} {3} ironic.tests.unit.common.test_json_rpc.TestService.test_missing_argument [0.059346s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_non_existent_node_uuid [0.090972s] ... 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-b382871d-1c12-4fe6-b5f3-bedb1b408ff1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_255_allocations_allocation_id_get_observer [0.210093s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/90e83be0-e95a-4ec6-a469-f46da994e452 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0ae6dfc9-eae5-48b1-90b6-212b21a3371d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "90e83be0-e95a-4ec6-a469-f46da994e452", "created_at": "2025-05-07T22:58:31.974340+00:00", "updated_at": "2025-05-07T22:58:31.997931+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/90e83be0-e95a-4ec6-a469-f46da994e452", "rel": "self"}, {"href": "http://localhost/allocations/90e83be0-e95a-4ec6-a469-f46da994e452", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_invalid_api_version [0.070527s] ... 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\": \"\"}"} {3} ironic.tests.unit.common.test_json_rpc.TestService.test_no_context [0.055175s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_singular [0.103872s] ... 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-3ca3110e-3d3a-4ff8-988c-5441afcde990 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:32.130512+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.common.test_json_rpc.TestService.test_no_deny_methods [0.053392s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_mode_field_lower_api_version [0.079816s] ... 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-110d3d56-ca2b-45d4-a86a-46cf4c269e40 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_json_rpc.TestService.test_non_json_body [0.070873s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_double_json_in_name [0.083841s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4843d492-a902-4901-886b-1c64b1362c89 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:32.261372+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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_256_allocations_allocation_id_patch_admin [0.172973s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/c76400d8-f723-4c27-aacd-57d803029835 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fbb1b1fb-3480-4793-b7ed-d8dc25a3b92c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "c76400d8-f723-4c27-aacd-57d803029835", "created_at": "2025-05-07T22:58:32.192737+00:00", "updated_at": "2025-05-07T22:58:32.294970+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/c76400d8-f723-4c27-aacd-57d803029835", "rel": "self"}, {"href": "http://localhost/allocations/c76400d8-f723-4c27-aacd-57d803029835", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {3} ironic.tests.unit.common.test_json_rpc.TestService.test_notification [0.059898s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid [0.161122s] ... 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-9e738942-44b8-4bcb-b819-db37199c65b5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:32.247516+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"} {3} ironic.tests.unit.common.test_json_rpc.TestService.test_success [0.053597s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json [0.084302s] ... 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-197027fa-83ce-46fb-a661-8d0baa60feeb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:32.345704+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_portgroup.TestListPortgroups.test_get_one_with_json_in_name [0.077207s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-65ef38f4-3c90-4729-ac5e-ac3a4d57a4a7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:32.423913+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.common.test_json_rpc.TestService.test_success_no_result [0.076588s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid_invalid_api_version [0.110517s] ... 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_portgroup.TestListPortgroups.test_get_one_with_json_not_found [0.066701s] ... 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-087ac763-c18a-4088-84d0-1817a3a7d261 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4.json could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_json_rpc.TestService.test_unexpected_failure [0.092774s] ... ok {1} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_not_found [0.115847s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/536808a4-583f-4411-8f14-3a368d2432f0 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f67661b0-1831-43a8-b448-f877470ca295 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 536808a4-583f-4411-8f14-3a368d2432f0 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_json_rpc.TestSession.test_http_basic [0.059719s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_suffix [0.091673s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b0515706-822d-40e7-822f-e721e462fb65 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:32.574859+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.common.test_json_rpc.TestSession.test_http_basic_deprecated [0.058613s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_001_values ... SKIPPED: These are fake reference values for YAML templating {3} ironic.tests.unit.common.test_json_rpc.TestSession.test_keystone [0.073849s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_links [0.134468s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/4b94eb42-f412-4910-a458-80e0c382b50d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4143df10-7abb-49b1-a746-adacd3fbee4b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "4b94eb42-f412-4910-a458-80e0c382b50d", "created_at": "2025-05-07T22:58:32.666365+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/4b94eb42-f412-4910-a458-80e0c382b50d", "rel": "self"}, {"href": "http://localhost/portgroups/4b94eb42-f412-4910-a458-80e0c382b50d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/4b94eb42-f412-4910-a458-80e0c382b50d/ports", "rel": "self"}, {"href": "http://localhost/portgroups/4b94eb42-f412-4910-a458-80e0c382b50d/ports", "rel": "bookmark"}]} GET /v1/portgroups/4b94eb42-f412-4910-a458-80e0c382b50d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b0d1ba11-f56d-4a49-9c8f-18748fce4cd3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "4b94eb42-f412-4910-a458-80e0c382b50d", "created_at": "2025-05-07T22:58:32.666365+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/4b94eb42-f412-4910-a458-80e0c382b50d", "rel": "self"}, {"href": "http://localhost/portgroups/4b94eb42-f412-4910-a458-80e0c382b50d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/4b94eb42-f412-4910-a458-80e0c382b50d/ports", "rel": "self"}, {"href": "http://localhost/portgroups/4b94eb42-f412-4910-a458-80e0c382b50d/ports", "rel": "bookmark"}]} GET /portgroups/4b94eb42-f412-4910-a458-80e0c382b50d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4abcea94-f332-4ec8-ae61-492e98519229 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "4b94eb42-f412-4910-a458-80e0c382b50d", "created_at": "2025-05-07T22:58:32.666365+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/4b94eb42-f412-4910-a458-80e0c382b50d", "rel": "self"}, {"href": "http://localhost/portgroups/4b94eb42-f412-4910-a458-80e0c382b50d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/4b94eb42-f412-4910-a458-80e0c382b50d/ports", "rel": "self"}, {"href": "http://localhost/portgroups/4b94eb42-f412-4910-a458-80e0c382b50d/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.common.test_json_rpc.TestSession.test_noauth [0.059171s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_257_allocations_allocation_id_patch_member [0.512542s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/9f02be43-69b7-4afb-901a-34274c0b3a04 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f4054d5d-09d6-47d0-9e3e-dc6a76a5d84a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 9f02be43-69b7-4afb-901a-34274c0b3a04 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_keystone.AuthConfTestCase.test_add_auth_opts [0.036453s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_many [0.094301s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0efa6604-8843-428b-b4d3-40fba4fd0dd7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "7af37b65-5f42-4987-b15f-32f4a32238ee", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/7af37b65-5f42-4987-b15f-32f4a32238ee", "rel": "self"}, {"href": "http://localhost/portgroups/7af37b65-5f42-4987-b15f-32f4a32238ee", "rel": "bookmark"}]}, {"uuid": "e7b3e6a2-66a2-472a-a505-45b46121667a", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/e7b3e6a2-66a2-472a-a505-45b46121667a", "rel": "self"}, {"href": "http://localhost/portgroups/e7b3e6a2-66a2-472a-a505-45b46121667a", "rel": "bookmark"}]}, {"uuid": "172081a8-9627-4689-9640-e7a939c7ccd2", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/172081a8-9627-4689-9640-e7a939c7ccd2", "rel": "self"}, {"href": "http://localhost/portgroups/172081a8-9627-4689-9640-e7a939c7ccd2", "rel": "bookmark"}]}, {"uuid": "45c24f3b-bd6c-4d94-8035-ddaf4092bb4c", "address": "52:54:00:cf:2d:33", "name": "portgroup3", "links": [{"href": "http://localhost/v1/portgroups/45c24f3b-bd6c-4d94-8035-ddaf4092bb4c", "rel": "self"}, {"href": "http://localhost/portgroups/45c24f3b-bd6c-4d94-8035-ddaf4092bb4c", "rel": "bookmark"}]}, {"uuid": "16119f74-103e-4ee9-87a1-142101395d96", "address": "52:54:00:cf:2d:34", "name": "portgroup4", "links": [{"href": "http://localhost/v1/portgroups/16119f74-103e-4ee9-87a1-142101395d96", "rel": "self"}, {"href": "http://localhost/portgroups/16119f74-103e-4ee9-87a1-142101395d96", "rel": "bookmark"}]}]} {3} ironic.tests.unit.common.test_keystone.AuthConfTestCase.test_os_service_types_alias [0.044737s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_one [0.068972s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-925cba48-09a1-4dca-8601-83488477f696 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {3} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_adapter_from_config [0.038380s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_258_allocations_allocation_id_patch_observer [0.133478s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/cd52c8bd-a771-4c4f-a068-fdb71a0d8c7a WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-41c567e7-63c3-4a84-a381-516fad56bda7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth [0.050333s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address [0.087614s] ... 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-329fd3b6-8be0-4199-b295-f4fe41362702 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "80380426-14a5-48ac-909b-c70e212adb4f", "address": "aa:bb:cc:dd:ee:f1", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/80380426-14a5-48ac-909b-c70e212adb4f", "rel": "self"}, {"href": "http://localhost/portgroups/80380426-14a5-48ac-909b-c70e212adb4f", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_002_nodes_post_admin [0.255932s] ... 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-5b94b70d-1357-4073-ba02-50546f49cd75 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth_fail [0.071272s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_invalid_address_format [0.068503s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?address=invalid-mac-format WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a99a2a94-75f1-456d-9578-ae3c191ce3ef X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-mac-format\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_259_allocations_allocation_id_delete_admin [0.144155s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/1131ed31-fd11-47be-92f1-135da560a8ad GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-734d7955-b339-4265-bdad-02ad73a50d02 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_non_existent_address [0.062712s] ... 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-1fc2933b-6907-4ae9-b4c5-f869817fcbcf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": []} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_get_all_invalid_api_version [0.060112s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-eb097e44-2aa0-4364-b428-d02e751c9790 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_service_auth [0.164015s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_003_nodes_post_member [0.204759s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-12234425-a810-42a4-b592-87f475f6320d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_260_allocations_allocation_id_delete_member [0.145206s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/762af9eb-8a24-4cda-8617-b9cd14bb5946 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ac5fa6d0-2cb1-42c5-b57a-47a30c82cfe1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 762af9eb-8a24-4cda-8617-b9cd14bb5946 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_session [0.063798s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_261_allocations_allocation_id_delete_observer [0.134871s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/4c4c13f2-e0d4-4605-8576-b31feee048dd GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-823f6954-2258-4375-8d1f-78bc9b413007 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource [0.193352s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/46a6f22b-e564-4f32-bdbe-f6645cdd9ed7/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c145266b-7515-421e-9497-96ff49443b14 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "bbf29c17-09b7-4584-8c2b-447852c6d1b5", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/bbf29c17-09b7-4584-8c2b-447852c6d1b5", "rel": "self"}, {"href": "http://localhost/ports/bbf29c17-09b7-4584-8c2b-447852c6d1b5", "rel": "bookmark"}]}, {"uuid": "5f101c88-3d99-48b9-94d6-4b2f3d838b8c", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/5f101c88-3d99-48b9-94d6-4b2f3d838b8c", "rel": "self"}, {"href": "http://localhost/ports/5f101c88-3d99-48b9-94d6-4b2f3d838b8c", "rel": "bookmark"}]}]} GET /v1/portgroups/46a6f22b-e564-4f32-bdbe-f6645cdd9ed7/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c05ff46a-64f5-4941-bdf2-b1d245092046 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "bbf29c17-09b7-4584-8c2b-447852c6d1b5", "created_at": "2025-05-07T22:58:33.262204+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/bbf29c17-09b7-4584-8c2b-447852c6d1b5", "rel": "self"}, {"href": "http://localhost/ports/bbf29c17-09b7-4584-8c2b-447852c6d1b5", "rel": "bookmark"}], "portgroup_uuid": "46a6f22b-e564-4f32-bdbe-f6645cdd9ed7"}, {"uuid": "5f101c88-3d99-48b9-94d6-4b2f3d838b8c", "created_at": "2025-05-07T22:58:33.270861+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/5f101c88-3d99-48b9-94d6-4b2f3d838b8c", "rel": "self"}, {"href": "http://localhost/ports/5f101c88-3d99-48b9-94d6-4b2f3d838b8c", "rel": "bookmark"}], "portgroup_uuid": "46a6f22b-e564-4f32-bdbe-f6645cdd9ed7"}]} GET /v1/portgroups/46a6f22b-e564-4f32-bdbe-f6645cdd9ed7/ports?limit=1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f52e6b60-456d-46e9-96e9-fd9cc23d95fe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "bbf29c17-09b7-4584-8c2b-447852c6d1b5", "address": "52:54:00:cf:2d:30", "links": [{"href": "http://localhost/v1/ports/bbf29c17-09b7-4584-8c2b-447852c6d1b5", "rel": "self"}, {"href": "http://localhost/ports/bbf29c17-09b7-4584-8c2b-447852c6d1b5", "rel": "bookmark"}]}], "next": "http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=bbf29c17-09b7-4584-8c2b-447852c6d1b5"} GET /v1/portgroups/46a6f22b-e564-4f32-bdbe-f6645cdd9ed7/ports/13e6385f-9926-4055-a6c8-9714b5be5ef8 WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET /v1/portgroups/46a6f22b-e564-4f32-bdbe-f6645cdd9ed7/ports/c8daba34-f1ac-4bdf-b013-f5b162ccd258 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-141144bb-23c6-4caa-92bf-6897bb04947f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debug info\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_004_nodes_post_reader [0.198040s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2a34d003-dc93-40d8-ac42-063e77a17af1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id [0.192358s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_portgroup.TestListPortgroups.test_ports_subresource_no_portgroups_allowed [0.076373s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/93f0a0e2-c056-441b-bcf5-59dd0f01eb32/ports WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_not_allowed [0.061905s] ... 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\": \"\"}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_262_nodes_allocation_get_admin [0.152596s] ... 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-4d112089-0ee0-4da2-a890-12844b0b805e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "7a82b045-3217-4456-9fe6-625638cee84d", "created_at": "2025-05-07T22:58:33.451452+00:00", "updated_at": "2025-05-07T22:58:33.462923+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/7a82b045-3217-4456-9fe6-625638cee84d", "rel": "self"}, {"href": "http://localhost/allocations/7a82b045-3217-4456-9fe6-625638cee84d", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {3} ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id_empty [0.132539s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_005_nodes_post_service [0.185327s] ... 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-6301aea0-d84a-465e-b389-c400e2f7ca07 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_portgroup_not_found [0.068280s] ... 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-4d35a76f-8626-4cde-adf3-db80d0160c63 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test__resolve_tag [0.073363s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_263_nodes_allocation_get_member [0.122400s] ... 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-b104fff2-c9e9-4992-bce9-67153b9fa507 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test__resolve_tag_auth_needed [0.055788s] ... ok {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test__resolve_tag_follows_links [0.048768s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_006_nodes_get_node_admin [0.222984s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b1e72f83-accc-492a-905d-351861b52548 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:33.699109+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.common.test_oci_registry.OciClientRequestTestCase.test__resolve_tag_if_not_found [0.047071s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_264_nodes_allocation_get_observer [0.157096s] ... 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-00575a2e-2dd5-498d-aaa4-d27083e4e7c9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "58d7452c-9e7d-4e8f-83cd-6ef1f8acf85d", "created_at": "2025-05-07T22:58:33.739689+00:00", "updated_at": "2025-05-07T22:58:33.757106+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/58d7452c-9e7d-4e8f-83cd-6ef1f8acf85d", "rel": "self"}, {"href": "http://localhost/allocations/58d7452c-9e7d-4e8f-83cd-6ef1f8acf85d", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test__resolve_tag_temp_failure [0.043997s] ... ok {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_401_bad_header [0.040346s] ... ok {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_401_basic_auth [0.035959s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_265_nodes_allocation_delete_admin [0.154808s] ... 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-cb2cc184-3ea4-472d-910d-72a60d0c59e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_401_basic_auth_no_username [0.048785s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_007_nodes_get_node_member [0.220017s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7d031ccb-b5fa-4b25-b6ac-810c111513ad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:33.914483+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.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_401_bearer_auth [0.053387s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key [0.483639s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?sort_key=uuid WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7024c879-4dd9-4b1f-8ffb-23c63171b5a6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6a9c48db-de89-4b81-bd29-3b031d90bfd2", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/6a9c48db-de89-4b81-bd29-3b031d90bfd2", "rel": "self"}, {"href": "http://localhost/portgroups/6a9c48db-de89-4b81-bd29-3b031d90bfd2", "rel": "bookmark"}]}, {"uuid": "bd24abb0-c74b-416c-848a-f2ee53b47c83", "address": "52:54:00:cf:2d:30", "name": "portgroup0", "links": [{"href": "http://localhost/v1/portgroups/bd24abb0-c74b-416c-848a-f2ee53b47c83", "rel": "self"}, {"href": "http://localhost/portgroups/bd24abb0-c74b-416c-848a-f2ee53b47c83", "rel": "bookmark"}]}, {"uuid": "dd927e62-e03f-4e61-8dc3-dad19ddeed71", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/dd927e62-e03f-4e61-8dc3-dad19ddeed71", "rel": "self"}, {"href": "http://localhost/portgroups/dd927e62-e03f-4e61-8dc3-dad19ddeed71", "rel": "bookmark"}]}]} {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_401_fallback_to_service_config [0.055005s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_266_nodes_allocation_delete_member [0.158755s] ... 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-b62e71b7-fe82-4ef4-9383-606f62503702 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_allowed [0.091275s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?sort_key=mode WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fb1469a9-133a-497c-9648-06f38c4b53a2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "0401a28c-63aa-49cb-9e7e-f4972718599d", "address": "52:54:00:cf:2d:31", "name": "portgroup1", "links": [{"href": "http://localhost/v1/portgroups/0401a28c-63aa-49cb-9e7e-f4972718599d", "rel": "self"}, {"href": "http://localhost/portgroups/0401a28c-63aa-49cb-9e7e-f4972718599d", "rel": "bookmark"}]}, {"uuid": "a434e4bc-b9bb-4a43-a79a-6cac1bd40c05", "address": "52:54:00:cf:2d:32", "name": "portgroup2", "links": [{"href": "http://localhost/v1/portgroups/a434e4bc-b9bb-4a43-a79a-6cac1bd40c05", "rel": "self"}, {"href": "http://localhost/portgroups/a434e4bc-b9bb-4a43-a79a-6cac1bd40c05", "rel": "bookmark"}]}, {"uuid": "7f510b20-4ad2-41e6-a625-56fcaa8045e8", "address": "52:54:00:cf:2d:33", "name": "portgroup3", "links": [{"href": "http://localhost/v1/portgroups/7f510b20-4ad2-41e6-a625-56fcaa8045e8", "rel": "self"}, {"href": "http://localhost/portgroups/7f510b20-4ad2-41e6-a625-56fcaa8045e8", "rel": "bookmark"}]}]} {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_401_no_header [0.055076s] ... ok {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_authenticate_noop [0.043410s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_008_nodes_get_node_reader [0.209907s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dff929dc-9bd3-4bd4-a9e1-fe13367cd7e9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:34.133248+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_portgroup.TestListPortgroups.test_sort_key_invalid [0.075081s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?sort_key=foo WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9acba5a5-2061-468c-a774-a28c9eb0dbbc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/portgroups?sort_key=extra WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-47883f9c-bd8a-4616-83d4-76bb2c9c3c39 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/portgroups?sort_key=internal_info WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-02d613c6-12ef-402a-8e88-17328c6da4e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value internal_info is an invalid field for sorting\", \"debuginfo\": null}"} GET /v1/portgroups?sort_key=properties WITH {} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-21e345cf-f0be-47de-acab-0d958863b6dc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest [0.065377s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_not_allowed [0.060063s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups?sort_key=mode WITH {} GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-3e12726b-3e9c-49f9-8b61-bdc593cd6b7b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_267_nodes_allocation_delete_observer [0.173045s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2c0e3fed-0453-40a2-b178-8ea02e45b91f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest_code_401 [0.056474s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_multi [0.098350s] ... 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-70bd2c07-357b-4f0b-840c-e24dc3e535e7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:34.374532+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"}]} {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest_code_403 [0.056418s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_009_nodes_get_node_other_admin ... SKIPPED: Not implemented yet {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest_code_404 [0.057057s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_id [0.090136s] ... 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-9e5fbd2f-d04b-467a-96c4-1841a408c084 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: address, extra, mode, name, node_uuid, properties, standalone_ports_supported\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest_code_500 [0.048670s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_268_deploy_templates_post_admin [0.190899s] ... 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/40e5ae66-1853-46a8-a5c4-32bfeecc53e6 Openstack-Request-Id: req-980ccbef-dcb9-4683-bd7b-d6321e224059 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "40e5ae66-1853-46a8-a5c4-32bfeecc53e6", "created_at": "2025-05-07T22:58:34.551834+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/40e5ae66-1853-46a8-a5c4-32bfeecc53e6", "rel": "self"}, {"href": "http://localhost/deploy_templates/40e5ae66-1853-46a8-a5c4-32bfeecc53e6", "rel": "bookmark"}], "steps": [{"interface": "deploy", "step": "noop", "args": {}, "priority": 0}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_010_nodes_get_admin [0.143650s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-160e07f0-ea01-48f2-b957-fb8cbeeacead X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "instance_uuid": "bdc2121d-7074-4620-a0f9-beac73cd36ae", "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.common.test_oci_registry.OciClientRequestTestCase.test_download_blob_from_manifest_code_check [0.058196s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_uuid [0.099795s] ... 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-4aa43aab-377f-4c4f-ae04-c20719dd524a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:34.567551+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.common.test_oci_registry.OciClientRequestTestCase.test_get_artifact_index_access_denied [0.049673s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_011_nodes_get_service [0.126221s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-639685f8-3bc0-4d6c-8cb4-a5bb05eebdb1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "instance_uuid": "7b103756-ed37-4989-a2ef-4387c30fd421", "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.common.test_oci_registry.OciClientRequestTestCase.test_get_artifact_index_not_authorized [0.060841s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root [0.108352s] ... 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-aa02c55e-8689-4909-a5e1-883d5385066c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:34.662767+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.common.test_oci_registry.OciClientRequestTestCase.test_get_artifact_index_not_found [0.063346s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root_non_existent [0.073776s] ... 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-fa042a47-9d5d-4170-a58f-2604e8e2fd50 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: address, extra, mode, name, node_uuid, properties, standalone_ports_supported\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_269_deploy_templates_post_member [0.248989s] ... 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-8bb45270-601c-4c53-8fc3-4bee0db44552 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_artifact_index_temporaryfailure [0.057062s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_012_nodes_get_service_project [0.161696s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-78e6825d-2c64-45bc-99cb-fce1b14edefc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}]}, {"uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "instance_uuid": "086d81c4-f30c-4296-96c7-0a6bad47d929", "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.common.test_oci_registry.OciClientRequestTestCase.test_get_artifact_index_with_tag [0.050943s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_address [0.155912s] ... 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-6814b9bc-540a-40e1-a7bf-184ed1879179 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:34.859305+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"}]} {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest [0.073560s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_270_deploy_templates_post_observer [0.176399s] ... 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-38d73b21-90e1-4b20-9103-7b997359a67b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest_auth_required [0.077431s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_013_nodes_get_service_project_disabled [0.225766s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f1e5cdc5-df64-4700-a7bd-46b1c658a835 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": []} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_mode_not_allowed [0.183773s] ... 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-3a6802ef-d008-45b2-b3a1-f4cba35d932f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'mode' is a mandatory attribute and can not be removed\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_271_deploy_templates_get_admin [0.130730s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9988a60f-d084-44b0-b00d-8a3ca2def76a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "ede17b71-78aa-48f3-b039-210c52b6073f", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/ede17b71-78aa-48f3-b039-210c52b6073f", "rel": "self"}, {"href": "http://localhost/deploy_templates/ede17b71-78aa-48f3-b039-210c52b6073f", "rel": "bookmark"}]}]} {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest_checksum_verifies [0.081616s] ... ok {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest_image_access_denied [0.041430s] ... ok {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest_image_not_found [0.043061s] ... ok {3} ironic.tests.unit.common.test_oci_registry.OciClientRequestTestCase.test_get_manifest_image_temporary_failure [0.041368s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_multi [0.156052s] ... 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-5030e961-be9e-4e39-a7cd-bfebb4ffa30f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:35.201185+00:00", "updated_at": "2025-05-07T22:58:35.213381+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-ea0761d2-1f74-4a64-88c8-5740d72a9843 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:35.201185+00:00", "updated_at": "2025-05-07T22:58:35.213381+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_272_deploy_templates_get_member [0.164496s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0f93063f-e4fa-4bac-adf7-e3a419bf983c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_014_nodes_get_service_project_admin [0.216543s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0a5b7ce4-a65d-4dbe-b4f4-78db97450231 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": []} {3} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test__image_to_url [0.068458s] ... ok {3} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test__image_to_url_adds_oci [0.052174s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_node_id [0.123665s] ... 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-4e6312bc-f4d9-4bd8-8f30-a848a238af0d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: address, extra, mode, name, node_uuid, properties, standalone_ports_supported\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test_client_init_make_session [0.043060s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_273_deploy_templates_get_observer [0.156721s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6429dbc9-9281-4577-855b-ea250b4dc282 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "a64ec108-4046-464f-a163-d4ee02066b78", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/a64ec108-4046-464f-a163-d4ee02066b78", "rel": "self"}, {"href": "http://localhost/deploy_templates/a64ec108-4046-464f-a163-d4ee02066b78", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_015_nodes_get_other_admin ... SKIPPED: Not implemented yet {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_non_existent_property_fail [0.089188s] ... 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-d88d4ec0-5f4d-430b-a84c-0e92ad445852 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '{'path': '/extra/non-existent', 'op': 'remove'}'. Reason: can't remove a non-existent object 'non-existent'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_274_deploy_templates_deploy_template_id_get_admin [0.137907s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/bfca21d9-bcec-48c4-93ba-6e616c2365fe WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2135aeea-f689-4066-8794-6e291ca72023 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "bfca21d9-bcec-48c4-93ba-6e616c2365fe", "created_at": "2025-05-07T22:58:35.540090+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/bfca21d9-bcec-48c4-93ba-6e616c2365fe", "rel": "self"}, {"href": "http://localhost/deploy_templates/bfca21d9-bcec-48c4-93ba-6e616c2365fe", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_uuid [0.093951s] ... 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-a2541ad4-ee49-41aa-96d5-8c2000b0a4b6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: address, extra, mode, name, node_uuid, properties, standalone_ports_supported\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_016_nodes_detail_get_admin [0.218887s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-69399c79-ad34-443f-93ef-822333bb7d7c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:35.576532+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-07T22:58:35.577587+00:00", "updated_at": "2025-05-07T22:58:35.599664+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": "a19defa5-1768-4eba-a789-afa9b4e1b13b", "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": "a19defa5-1768-4eba-a789-afa9b4e1b13b", "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-07T22:58:35.643869+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_275_deploy_templates_deploy_template_id_get_member [0.127462s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/dbacd4a0-d0bc-497d-954e-022d4669ba4a WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7b789950-9a5f-4633-8344-f0f0a5b9c786 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test_get_blob_url [0.295112s] ... ok {3} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test_image_tag_from_url [0.016805s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_address_already_exist [0.171744s] ... 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-12fbd23c-47ad-4749-b68e-0427e0a0ca12 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address aa:aa:aa:aa:aa:aa already exists.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test_image_tag_from_url_with_digest [0.020001s] ... ok {3} ironic.tests.unit.common.test_oci_registry.OciClientTestCase.test_image_tag_from_url_with_tag [0.038283s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_276_deploy_templates_deploy_template_id_get_observer [0.140289s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/efa399a8-48c9-432a-b6ec-2b45790f7cb8 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bf7c1255-da77-4c6e-b07c-86bb923f0b25 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "efa399a8-48c9-432a-b6ec-2b45790f7cb8", "created_at": "2025-05-07T22:58:35.813443+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/efa399a8-48c9-432a-b6ec-2b45790f7cb8", "rel": "self"}, {"href": "http://localhost/deploy_templates/efa399a8-48c9-432a-b6ec-2b45790f7cb8", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_multi [0.120222s] ... 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-ae4bb3d2-f422-496c-a582-e01f72a86350 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:35.849979+00:00", "updated_at": "2025-05-07T22:58:35.867295+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"}]} {3} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipa_debug_rescue [0.100886s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_017_nodes_detail_get_member [0.217081s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-265fe2ab-dcb5-4cc9-b20a-da60642cc9fa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:35.799052+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-07T22:58:35.815457+00:00", "updated_at": "2025-05-07T22:58:35.818929+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": "20783176-1a4b-455b-872d-dc0040e8c8cc", "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": "20783176-1a4b-455b-872d-dc0040e8c8cc", "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-07T22:58:35.861932+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_portgroup.TestPatch.test_replace_node_id [0.095997s] ... 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-9d6e6f55-5427-4636-9551-e5f08fef2a38 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: address, extra, mode, name, node_uuid, properties, standalone_ports_supported\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_from_driver_info [0.089133s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_277_deploy_templates_deploy_template_id_patch_admin [0.179329s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/dba3386e-52e3-4ca8-b4fb-bedbb27818ee WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5ce0a264-e5be-4d4f-8d51-62276daae592 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "dba3386e-52e3-4ca8-b4fb-bedbb27818ee", "created_at": "2025-05-07T22:58:35.951773+00:00", "updated_at": "2025-05-07T22:58:36.039032+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/dba3386e-52e3-4ca8-b4fb-bedbb27818ee", "rel": "self"}, {"href": "http://localhost/deploy_templates/dba3386e-52e3-4ca8-b4fb-bedbb27818ee", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_018_nodes_detail_get_reader [0.186879s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aef94cb1-400c-46ee-9a52-9ecad78fb28a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:36.016707+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-07T22:58:36.017781+00:00", "updated_at": "2025-05-07T22:58:36.020978+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": "a2ef6bf1-26d1-4b7f-9cf3-47ec484c5efd", "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": "a2ef6bf1-26d1-4b7f-9cf3-47ec484c5efd", "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-07T22:58:36.073907+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_portgroup.TestPatch.test_replace_node_uuid [0.161256s] ... 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-93658ca7-ea3f-4ca8-a5f4-e6206a1ce29f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:36.088095+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.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_from_instance_info [0.153809s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_019_nodes_detail_get_service [0.088170s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-24f53534-02cf-4b8a-9ca1-21736ae2ea4d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:36.150426+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-07T22:58:36.152008+00:00", "updated_at": "2025-05-07T22:58:36.157244+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": "b9ed69a7-6ede-4397-b83f-f12ec28eed31", "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": "b9ed69a7-6ede-4397-b83f-f12ec28eed31", "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-07T22:58:36.179195+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "disable_power_off": false, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "firmware_interface": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "parent_node": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "service_step": {}, "shard": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", " rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_020_nodes_node_ident_get_admin [0.075973s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9ac46676-b5e2-4a45-b8ce-09b0246d3051 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:36.237952+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_278_deploy_templates_deploy_template_id_patch_member [0.250025s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/90a83faa-59d4-446f-a5df-3095de0ba309 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fff18052-f516-43d5-ac97-ef20277dad0a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_non_existent_node_uuid [0.148279s] ... 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-9f074533-824c-4d54-a06c-ddb37a926e76 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_kernel_params_with_default [0.153515s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_021_nodes_node_ident_get_member [0.080740s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9b6b8e8e-3a3d-4f62-a610-5ee5e427abf1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:36.319857+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.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe [0.118004s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_022_nodes_node_ident_get_reader [0.078970s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1a76b783-206a-4cf2-a67d-dd534eaded1d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2025-05-07T22:58:36.401167+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_portgroup.TestPatch.test_replace_singular [0.156039s] ... 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-bdb9f148-9d73-4735-a3af-f4c5d5d77799 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:36.397719+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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_279_deploy_templates_deploy_template_id_patch_observer [0.222758s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/caba1813-52b7-4a0a-88b7-5d6adedec6ae WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-153d249e-1ba0-44cf-b6cd-45b4eb565385 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_ipa_debug [0.137297s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_address_invalid_format [0.157039s] ... 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-0bad30a8-08dc-49f2-ae4c-7e402f1d4e3d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-format\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_local_boot [0.115131s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_280_deploy_templates_deploy_template_id_delete_admin [0.165876s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/63ef800d-2102-43a6-a014-86182b3d3161 GOT Response: 204 No Content Openstack-Request-Id: req-230ff2cc-31e4-489a-a608-8d0a3b5e916f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byaddress_not_allowed [0.079706s] ... 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\"}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_023_nodes_node_ident_patch_admin [0.277309s] ... 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-d4a5b9d0-5cc2-4181-bc89-f9a8fd12d0a6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_no_kernel_no_ramdisk [0.087041s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid [0.103608s] ... 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-10e6bdf2-b96a-4e50-bd22-7a70a8d74eb4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:36.772489+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"}]} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_281_deploy_templates_deploy_template_id_delete_member [0.135282s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/031c9f3a-78c5-4b28-8ed1-218fa27d18dd GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-91928e4d-481b-49f1-8ed7-409a0a379555 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_opts_ramdisk_opt [0.080461s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid_invalid_api_version [0.070600s] ... 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\": \"\"}"} {3} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_rescue [0.079837s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_282_deploy_templates_deploy_template_id_delete_observer [0.130351s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/cc5b089a-bb6e-4478-b97b-49d0a6a0a6cc GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-27b77259-1fcc-415e-8cc3-7986ca5bbe67 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname [0.098964s] ... 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-9c9ba078-2bb5-404a-a586-60341f302eaa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:36.948839+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_pxe_without_is_whole_disk_image [0.098841s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_283_chassis_post_admin [0.115275s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/02afe6e7-c211-42d5-8999-51d333cde647 Openstack-Request-Id: req-6aa6af9c-6d1b-41ce-99ca-cd8209d2be2a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "02afe6e7-c211-42d5-8999-51d333cde647", "created_at": "2025-05-07T22:58:37.076243+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/02afe6e7-c211-42d5-8999-51d333cde647", "rel": "self"}, {"href": "http://localhost/chassis/02afe6e7-c211-42d5-8999-51d333cde647", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/02afe6e7-c211-42d5-8999-51d333cde647/nodes", "rel": "self"}, {"href": "http://localhost/chassis/02afe6e7-c211-42d5-8999-51d333cde647/nodes", "rel": "bookmark"}]]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_024_system_admin_can_patch_chassis [0.387437s] ... 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-c844a6c8-8424-42da-9593-91ffd873ddd0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_284_chassis_post_member [0.071781s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4408c984-7ae3-4753-a212-a60de54ee576 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname_with_json [0.146041s] ... 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-b5815333-bb5f-4f0e-a4c8-6655367913a8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.90 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:37.076354+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.common.test_pxe_utils.PXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ramdisk_params [0.123391s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe [0.090550s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_285_chassis_post_observer [0.146608s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-38fbe1e8-bad9-4643-87a8-a825d427c1d5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_allowed [0.142798s] ... 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-445b5202-d43d-4c39-8462-da88146a2eec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:37.222761+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.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe_insecure_heartbeat [0.090367s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_025_system_member_can_patch_conductor_group [0.279112s] ... 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-36e4c33b-ca64-4147-9e9e-0814bcaa46d5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_build_kickstart_config_options_pxe_source_path [0.074069s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_prepare_instance_kickstart_config [0.032662s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_prepare_instance_kickstart_config_not_anaconda_boot [0.031861s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_not_allowed [0.191081s] ... 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-903c7245-d46a-4229-9c2e-c2e0c25d59ab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.39 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update portgroup \\\"6eb02b44-18a3-4659-8c0b-8d2802581ae4\\\" on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_286_chassis_get_admin [0.218384s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f07a75aa-da87-4b9d-9aa3-6ce08a86c4fd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]} {3} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template [0.057261s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_invalid_name [0.060109s] ... 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-7e8fb77c-b983-4b93-9a96-fd9c9d444e7b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup pg.1: Cannot change name to invalid name 'aa:bb_cc'\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_not_found [0.038403s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/d03d6955-9ac0-4a04-b0d8-1722cd87f2c9 WITH [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-21c27980-d4bc-4684-8483-3545a607ed38 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup d03d6955-9ac0-4a04-b0d8-1722cd87f2c9 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template_has_additional_variables [0.080815s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_address_normalized [0.056138s] ... 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-430e86a4-a357-492c-ba8d-7244ff4444f3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:37.615750+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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_287_chassis_get_member [0.123313s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-eebe108c-af7f-4722-92fe-673b7589e225 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_026_nodes_node_ident_patch_member [0.291449s] ... 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-d304a829-2fa2-4c27-b208-77331a9414e4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template_missing_variable [0.064150s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__cache_tftp_images_master_path [0.055389s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_internal_info_not_allowed [0.100646s] ... 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-de9d3e55-85bc-45d2-91dd-6ac9d3fef1ab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /internal_info. Only the following can be updated: address, extra, mode, name, node_uuid, properties, standalone_ports_supported\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_288_chassis_get_observer [0.126955s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-86ae7432-5df2-48e5-9f09-10e83ce152b6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]} {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info [0.062820s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties [0.097604s] ... 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-fdc0cadd-3f09-4811-a612-e662cbbfab9c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:37.794389+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"}]} {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_deploy_ramdisk [0.056953s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_289_chassis_detail_get_admin [0.129774s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1701a9fb-3b63-4712-8ae5-7102c7e481fa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-07T22:58:37.872873+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.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_ipxe [0.084351s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties_bad_api_version [0.112710s] ... 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-4e9fc075-596c-4b7d-a7cc-59c36b945800 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH [{'path': '/properties/abc', 'op': 'add', 'value': 123}] GOT Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-f0284d69-edb6-4b37-a1c7-a5f74deb636d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test__get_deploy_image_info_missing_deploy_kernel [0.059234s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_027_nodes_node_ident_patch_service [0.318752s] ... 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-7f5e4989-523c-46e0-864d-5ca55187a4c8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_290_chassis_detail_get_member [0.135015s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5ac501fb-cc73-47ae-8378-799c974d79e4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported [0.099967s] ... 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-6f29b78e-484e-4831-83e2-13c22b5947df X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:38.020646+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"}]} {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel [0.072325s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported_bad_api_version [0.072280s] ... 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.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel_ipxe [0.091099s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_291_chassis_detail_get_observer [0.124443s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-86c45335-4700-45e0-9593-e93e22f5e61c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-07T22:58:38.130596+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_ramdisk.TestContinueInspection.test_bmc_address_as_none [0.075777s] ... 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-cfb5a9c4-799e-4842-92bc-8a6589850367 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "26e823ad-6afe-4fab-80d6-8f088f3d8ac5"} {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_cache_ramdisk_kernel_ipxe_anaconda [0.073306s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_028_nodes_node_ident_patch_service_project [0.270341s] ... 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-1e025ca2-c3e9-49cd-aca2-5f26b197da1e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_inspector_compatibility [0.070973s] ... 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-78903129-a04d-43d8-9bfe-368e9e7a3396 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "74664023-a609-413b-9c22-ea792e10d06a"} {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_boot_iso [0.081646s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_292_chassis_chassis_id_get_admin [0.126025s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f49e89b3-6eba-4540-8a82-990ee98bcef5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-07T22:58:38.274762+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_ramdisk.TestContinueInspection.test_invalid_schema [0.074386s] ... 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-b3083331-1e19-4a44-81ce-ea688fce2019 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for data: 'interfaces' is a required property\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_new_api [0.080618s] ... 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-34e3976a-552d-4307-b1d1-88a28ca0fe7f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"node": {"uuid": "f265c299-f26b-4e2b-b555-5aa48d84e60a", "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/f265c299-f26b-4e2b-b555-5aa48d84e60a", "rel": "self"}, {"href": "http://localhost/nodes/f265c299-f26b-4e2b-b555-5aa48d84e60a", "rel": "bookmark"}]}, "config": {"metrics": {"backend": "noop", "prepend_host": false, "prepend_uuid": false, "prepend_host_reverse": true, "global_prefix": null}, "metrics_statsd": {"statsd_host": "localhost", "statsd_port": 8125}, "heartbeat_timeout": 300, "agent_containers": {"allow_arbitrary_containers": false, "allowed_containers": [], "container_steps_file": "/etc/ironic-python-agent.d/mysteps.yaml", "runner": "podman", "pull_options": "--tls-verify=false", "run_options": "--rm --network=host --tls-verify=false", "container_conf_file": "/etc/containers/containers.conf"}, "agent_token": null, "agent_token_required": true, "agent_md5_checksum_enable": true, "disable_deep_image_inspection": false, "permitted_image_formats": ["raw", "gpt", "qcow2", "iso"]}} {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_kickstart_stage2_missing [0.115574s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_293_chassis_chassis_id_get_member [0.125111s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3469ae9b-25cd-416a-87cb-6ec350a57e13 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_no_usable_lookup_data [0.077036s] ... 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-8b0872e0-74bd-4a40-8db4-71d207f2e4af X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No lookup information provided\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_localboot [0.102680s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_whole_disk_image [0.076430s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_ramdisk.TestContinueInspection.test_old_api_version [0.100718s] ... 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-2f2f8156-7f54-4c69-a818-50182510db95 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.83 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"API version 1.84 or newer is required\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_294_chassis_chassis_id_get_observer [0.181682s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dd205ebc-a543-4972-aadb-6e58b99c8c85 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-07T22:58:38.561159+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_root.TestCheckVersions.test_check_version_invalid_major_version [0.058501s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_with_kickstart_boot_option [0.105662s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_ok [0.060415s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_high [0.059445s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_with_kickstart_url_http [0.110391s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_295_chassis_chassis_id_patch_admin [0.234324s] ... 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-32c6a11c-895e-4ae6-b49f-2e6fbf64667b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-07T22:58:38.755829+00:00", "updated_at": "2025-05-07T22:58:38.863202+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"}]]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_029_nodes_node_ident_patch_reader [0.618622s] ... 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-d8d5b70c-da07-461b-bf16-12a3721d3d0b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_low [0.056748s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_deploy [0.050696s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_deploy [0.049566s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_alloc_policy_and_retrieve_no_alloc_policy_not_found [0.068281s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_deploy_by_arch [0.059189s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_allocation_policy_and_retrieve_no_allocation [0.056148s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_030_nodes_node_ident_delete_admin [0.150924s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a0124925-b438-4a8c-85dc-2acb1705a8ef X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_rescue [0.053107s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_allocation_policy_and_retrieve_policy_not_found [0.074084s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_296_chassis_chassis_id_patch_member [0.210761s] ... 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-f2bc5a13-983f-4e1b-85f8-effc81917c48 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_from_conf_rescue_by_arch [0.067513s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_node_policy_and_retrieve [0.068413s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_kernel [0.050044s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_031_nodes_node_ident_delete_service [0.156822s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-81db211c-ae46-4071-b39c-2ace00c4826f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_ramdisk [0.056740s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve [0.066066s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_no_node [0.035185s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_297_chassis_chassis_id_patch_observer [0.192002s] ... 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-b04f9ea9-75f7-4fe2-b492-697799144120 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_kernel [0.063917s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_no_node_policy_notfound [0.051701s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_ramdisk [0.054575s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_032_nodes_node_ident_delete_member [0.162830s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-dcd41e6e-dad1-4481-832c-3a43bd30f30e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_policy_forbidden [0.043922s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_deploy [0.055213s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_with_suffix [0.045294s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_deploy_by_arch [0.050994s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckOwnerPolicy.test_check_owner_policy [0.061854s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_mixed_source_rescue [0.051913s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_033_nodes_node_ident_delete_reader [0.154486s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b05d49b8-c45d-4a6e-8b60-76cd1746070f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_ramdisk [0.078527s] ... ok {3} ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_rescue [0.058771s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_034_nodes_validate_get_admin [0.152973s] ... 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-f11e6dbf-97ec-42db-9e75-13425aa42c8c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_298_chassis_chassis_id_delete_admin [0.417103s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 204 No Content Openstack-Request-Id: req-a315284e-3d42-4dda-81da-28f4bfc8c368 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config [0.063271s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_299_chassis_chassis_id_delete_member [0.059962s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2180f509-7f62-4434-8584-23ad734431dc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_empty_target_raid_config [0.063989s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_035_nodes_validate_get_member [0.157952s] ... 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-ea42458e-fb59-42f1-85d3-28bbf2928456 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_no_target_raid_config_after_skipping [0.045158s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_300_chassis_chassis_id_delete_observer [0.131901s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5c1ecfc1-180b-40f1-8525-f4e1cb6b6ef8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_036_nodes_validate_get_service [0.069810s] ... 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-aeccddf0-4f2f-48af-969e-34b87b24d64a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_nonroot [0.054672s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckOwnerPolicy.test_check_owner_policy_forbidden [0.492194s] ... ok {3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_skip_root [0.071345s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy [0.030966s] ... ok {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_301_node_history_get_admin [0.141279s] ... 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-5a0d125b-0bb8-4a94-a3a8-5d9ef8ef8e6e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"history": [{"uuid": "8c48fee9-64fc-41b8-8094-33b825c119fc", "created_at": "2025-05-07T22:58:39.997005+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/8c48fee9-64fc-41b8-8094-33b825c119fc", "rel": "self"}]}]} {3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties [0.058083s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_037_nodes_validate_get_service_project [0.138962s] ... 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-f41110b3-b4c1-4fa1-8f72-71b0fa46f8db X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_forbidden [0.047464s] ... ok {3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties_custom_schema [0.057597s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_forbidden_no_project [0.066261s] ... ok {3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_multiple_root_volumes [0.064964s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_non_admin [0.047190s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_038_nodes_validate_get_reader [0.164603s] ... 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-ea3fab55-abff-49d7-9a3a-c4ee50b3cab8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:validate\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_302_node_history_get_member [0.216169s] ... 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-cf48da92-b953-4969-b6eb-ee404395621c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay [0.081249s] ... ok {3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_current_capabilities_empty [0.090835s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector [0.168506s] ... 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-ca5ce1cd-d1b7-45cd-bc51-d5f8bdf88774 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e30f22ac-55f6-477a-b7ae-94223071ce90 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_039_nodes_maintenance_put_admin [0.149634s] ... 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-699069fb-e3fc-447b-a290-693a7cb92524 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_303_node_history_get_observer [0.168198s] ... 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-f6948a3b-7424-464d-83b6-c57ae51859ac X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"history": [{"uuid": "8c44468f-b6f8-4d87-8eaf-2ae3e884016e", "created_at": "2025-05-07T22:58:40.384592+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/8c44468f-b6f8-4d87-8eaf-2ae3e884016e", "rel": "self"}]}]} {3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_no_root_volumes [0.108133s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_doesnt_contain_id [0.121451s] ... 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-c273af11-23d7-4b06-99d9-8a1aec8bc224 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:40.461855+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-b59df058-5aa4-47f2-b9a4-6d81dc4f9227 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:40.461855+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo": 123}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_skip_MAX [0.102225s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_040_nodes_maintenance_put_member [0.201813s] ... 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-24d2c582-5b34-40fe-99bd-ab77e07f41cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_304_node_history_get_entry_admin [0.150317s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/de502c57-7d35-481f-b2a4-a580ab190c7c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-259efb83-f588-4ca5-acea-08b41737962c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "de502c57-7d35-481f-b2a4-a580ab190c7c", "created_at": "2025-05-07T22:58:40.526637+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/de502c57-7d35-481f-b2a4-a580ab190c7c", "rel": "self"}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_error [0.092695s] ... 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-69adf295-99c9-4786-93d1-1132a6b83dd7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions [0.063070s] ... ok {3} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_objects [0.062461s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_generate_uuid [0.114017s] ... 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/89976fce-bace-49d2-b2d8-51bd18b44552 Openstack-Request-Id: req-fdb22757-a35b-4ed3-a651-d053b2251310 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "89976fce-bace-49d2-b2d8-51bd18b44552", "created_at": "2025-05-07T22:58:40.670977+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/89976fce-bace-49d2-b2d8-51bd18b44552", "rel": "self"}, {"href": "http://localhost/volume/connectors/89976fce-bace-49d2-b2d8-51bd18b44552", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET /v1/volume/connectors/89976fce-bace-49d2-b2d8-51bd18b44552 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1c7a5cef-70da-4753-b17e-1905a8290a76 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "89976fce-bace-49d2-b2d8-51bd18b44552", "created_at": "2025-05-07T22:58:40.670977+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/89976fce-bace-49d2-b2d8-51bd18b44552", "rel": "self"}, {"href": "http://localhost/volume/connectors/89976fce-bace-49d2-b2d8-51bd18b44552", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_305_node_history_get_entry_member [0.136943s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/90c0134c-0bc7-4c49-a84b-6887096f441b WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2a4b8612-7c2e-4054-916a-fa92d023f4b9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_api_version [0.059632s] ... 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\": \"\"}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_041_nodes_maintenance_put_reader [0.211349s] ... 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-e7264427-c037-43af-a1db-dbf7974d6d5e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_maintenance\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_node_uuid_format [0.068050s] ... 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-d56293e5-be76-4332-b7b2-1e9033966bdb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 123 is not of type 'string'\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_306_node_history_get_entry_observer [0.139959s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/85417776-5106-4a04-931e-b0151840d69d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7e7a6764-914b-4c6f-8546-8705b414223d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "85417776-5106-4a04-931e-b0151840d69d", "created_at": "2025-05-07T22:58:40.820404+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/85417776-5106-4a04-931e-b0151840d69d", "rel": "self"}]} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_connector_id [0.076809s] ... 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-3614c57d-ce0d-43cf-9c87-6d3ff17d03c2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 'connector_id' is a required property\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_disable_audit_request [0.044564s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_node_uuid [0.061077s] ... 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-66087cf4-2c24-490e-bde3-041c6dda3bda X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 'node_uuid' is a required property\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request [0.070779s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_042_nodes_maintenance_delete_admin [0.212832s] ... 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-e4b81f89-0f25-4f01-bc75-684398da272e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_type [0.068782s] ... 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-037c2ade-0d82-474b-b80b-c2831cefa43d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 'type' is a required property\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request_error [0.055446s] ... ok {2} ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_get_arg [0.057614s] ... ok {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_node_uuid_not_found [0.075965s] ... 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-91a26444-ce8d-4baf-858e-e334d95c588d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'. \", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_set_arg_types [0.068733s] ... ok {2} ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_signature [0.056661s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_043_nodes_maintenance_delete_member [0.211990s] ... 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-1fd34279-2276-479b-b1e3-732d7e62c592 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_type_value_already_exist [0.118218s] ... 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-e335a489-1654-49b7-a943-be54cd80c483 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:41.203492+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': 'c3e9face-ac34-43e4-8627-cd6c734040c1', '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-425b972b-1534-431c-a992-be6523369092 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume connector with type iqn and connector ID test-connector-id-456 already exists.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_method.TestExpose.test_exception [0.049571s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/things/ouch WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-7503bcfa-8e94-4865-a6b5-0f4205181ee6 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"ouch\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases [0.637113s] ... ok {2} ironic.tests.unit.api.test_method.TestExpose.test_expose [0.057004s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/things WITH {'name': 'foo', 'flag': True} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bbf3201c-a1e3-48da-b5df-8aaa2572aecf {"foo": true} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_valid_extra [0.117394s] ... 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-b53576f1-15c3-4d3b-b426-f76e98afcc21 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:41.330099+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-99d0a6b5-4861-4322-b92d-a658edc0750d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:41.330099+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"} {3} ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases_objects [0.061766s] ... ok {2} ironic.tests.unit.api.test_method.TestExpose.test_expose_validation [0.058042s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/things WITH {'name': 'foo', 'flag': 'truish'} GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-39a960ff-701a-4e7c-8ea1-ec808012900d {"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.api.test_method.TestExpose.test_post_body [0.054839s] ... 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-f7570de8-d974-4886-a147-219479db4c52 {"three": "three", "four": "four", "five": "five"} {0} ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_node_uuid_to_node_id_mapping [0.104651s] ... 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-4a5d1a53-12f6-4d98-a038-e07f8fa70f11 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:58:41.457871+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_044_nodes_maintenance_delete_reader [0.224796s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d37aa5cb-5876-4e3d-8d6f-8abcd95e0af4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:clear_maintenance\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_method.TestExpose.test_post_body_validation [0.055710s] ... 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-54a13a08-c622-4f42-a3f1-4d8b7681f27c {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for body: 'fourrrr' is too long\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_method.TestExpose.test_response_204 [0.058167s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/things/no_content WITH {} GOT Response: 204 No Content Openstack-Request-Id: req-38d6ffe8-26b7-4e26-b6a9-0a46673c536b {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_001_values ... SKIPPED: These are fake reference values for YAML templating {2} ironic.tests.unit.api.test_method.TestExpose.test_response_content [0.061220s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/things/response_content WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cd010faa-a13a-4834-a720-e9b266e97db0 "nothing" {2} ironic.tests.unit.api.test_method.TestExpose.test_response_custom_status [0.055632s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/things/response_custom_status WITH {} GOT Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-5916787a-bc16-42f1-b417-dc017bf226d7 "accepted" {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_045_nodes_management_boot_device_put_admin [0.208117s] ... 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-a9db40bc-39a5-4e6b-a099-a293ee8b79e4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_root.TestRoot.test_get_root [0.055990s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET / WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1891c4f7-1e02-4f0a-aceb-475a3c29dad1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"name": "OpenStack Ironic API", "description": "Ironic is an OpenStack project which enables the provision and management of baremetal machines.", "default_version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "versions": [{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}]} {2} ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors [0.053602s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/foo WITH {} GOT Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_002_owner_admin_cannot_post_nodes [0.215020s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-64680849-f25c-4a1e-a62f-80de508cec9a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors2 [0.060136s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ GOT Response: 405 Method Not Allowed Content-Type: application/json Openstack-Request-Id: req-9993600e-e5a5-40ef-b067-13708f6f62f9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The server could not comply with the request since it is either malformed or otherwise incorrect.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_22_root [0.052249s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7a7358f2-e235-4e11-b218-99050d2fad79 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.22 {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "lookup": [{"href": "http://localhost/v1/lookup/", "rel": "self"}, {"href": "http://localhost/lookup/", "rel": "bookmark"}], "heartbeat": [{"href": "http://localhost/v1/heartbeat/", "rel": "self"}, {"href": "http://localhost/heartbeat/", "rel": "bookmark"}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_046_nodes_management_boot_device_put_member [0.228876s] ... 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-d9abffae-8c1e-4ad2-8428-1aee8c7222e1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_23_root [0.054829s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d265f12f-23d1-4e68-aab1-719f4e876f91 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.23 {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "portgroups": [{"href": "http://localhost/v1/portgroups/", "rel": "self"}, {"href": "http://localhost/portgroups/", "rel": "bookmark"}], "lookup": [{"href": "http://localhost/v1/lookup/", "rel": "self"}, {"href": "http://localhost/lookup/", "rel": "bookmark"}], "heartbeat": [{"href": "http://localhost/v1/heartbeat/", "rel": "self"}, {"href": "http://localhost/heartbeat/", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_003_owner_admin_can_post_nodes [0.181753s] ... 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-6e1fd230-2385-43f2-be0a-de233a15c15b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_32_root [0.066908s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e5f29d74-6950-49ce-b6a3-8b82d433d3fc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}, "portgroups": [{"href": "http://localhost/v1/portgroups/", "rel": "self"}, {"href": "http://localhost/portgroups/", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "lookup": [{"href": "http://localhost/v1/lookup/", "rel": "self"}, {"href": "http://localhost/lookup/", "rel": "bookmark"}], "heartbeat": [{"href": "http://localhost/v1/heartbeat/", "rel": "self"}, {"href": "http://localhost/heartbeat/", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_004_service_nodes_cannot_post_nodes [0.090855s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e9267ffa-3aea-478e-bc85-3db3a63aa345 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_root [0.077958s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cf2f06f0-e4dc-48da-b7f2-1e96979b3c61 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "media_types": {"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}, "chassis": [{"href": "http://localhost/v1/chassis/", "rel": "self"}, {"href": "http://localhost/chassis/", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/nodes/", "rel": "self"}, {"href": "http://localhost/nodes/", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/ports/", "rel": "self"}, {"href": "http://localhost/ports/", "rel": "bookmark"}], "drivers": [{"href": "http://localhost/v1/drivers/", "rel": "self"}, {"href": "http://localhost/drivers/", "rel": "bookmark"}], "version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "min_version": "1.1", "version": "1.98"}} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_047_nodes_management_boot_device_put_reader [0.207768s] ... 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-887e8b51-e49a-4052-9ea6-8e44bc5ea737 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_driver_factory.StorageInterfaceFactoryTestCase.test_build_interface_for_task [0.097466s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_supported [0.040585s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_005_service_nodes_can_post_nodes [0.177569s] ... 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-098e33fd-696a-4c15-a8a4-31115bfdf728 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_unsupported [0.081955s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestGlanceSerializer.test_serialize [0.001108s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_048_nodes_management_boot_device_get_admin [0.220902s] ... 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-72450e54-44f1-4d60-8e61-fce5bee96d41 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_config [0.047594s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_endpoint_less_than_download_delay [0.077719s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_multiple_containers [0.068294s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_049_nodes_management_boot_device_get_member [0.204966s] ... 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-e1e94d8b-93d8-4a70-bfa1-df949ce25c72 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_no_key_no_exception [0.065374s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_006_owner_manager_cannot_post_nodes [0.314243s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a1077ff8-8eac-4233-94d0-2333e4df48f8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url [0.090817s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected [0.099655s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_050_nodes_management_boot_device_get_reader [0.226738s] ... 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-e3770fd9-294a-49bf-8add-fd5300c151d4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected_with_prefix [0.093385s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_007_lessee_admin_cannot_post_nodes [0.276761s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-359600be-5894-4a4f-bd9d-f5d00412bff1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected_with_prefix_underscore [0.080777s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_051_nodes_management_boot_device_supported_get_admin [0.208621s] ... 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-c00ce2e2-acc5-4388-9a1c-27085ea5cb35 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_detected [0.101041s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_with_suffix [0.078591s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_008_lessee_admin_can_post_nodes [0.289139s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ac5b1f78-7fcd-480a-b9ba-251b485228fd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_invalid_image_info [0.097246s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_052_nodes_management_boot_device_supported_get_member [0.205645s] ... 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-e93b099f-4116-404e-84a5-7f34fdad932a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_key_detected [0.096873s] ... ok {3} ironic.tests.unit.common.test_swift.SwiftTestCase.test___init__ [1.967382s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_053_nodes_management_boot_device_supported_get_reader [0.143781s] ... 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-686ddbc8-bc25-43f2-bf54-0502f54649f1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_multiple_containers [0.081561s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_no_key_detected [0.051539s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_009_lessee_manager_cannot_post_nodes [0.308325s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-40ed722e-4dc2-4fbe-a5c6-15eb3cdbe00d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_url_bad_no_info [0.046808s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_glance_image [0.030196s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_fail [0.046196s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_054_nodes_management_inject_nmi_put_admin [0.212068s] ... 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-cdd11ace-a36a-4927-a23b-25564ad1ffd4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance [0.041567s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance_fail [0.030092s] ... ok {2} ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_uuid [0.045210s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_010_lessee_manager_can_post_nodes [0.226318s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-277a14c2-7abe-4843-a5eb-404c79298831 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_automatic_retry [0.108355s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_055_nodes_management_inject_nmi_put_member [0.209431s] ... 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-56ae5f3a-3256-4e4e-a4bc-71ddb9415843 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_011_third_party_admin_cannot_post_nodes [0.120785s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5d1d471e-770e-43df-a6bd-8f7ac9877360 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_driver_not_found [0.083661s] ... ok {2} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success [0.069505s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_056_nodes_management_inject_nmi_put_reader [0.174342s] ... 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-642b983b-f4f8-4b98-b9f9-7d46e1062074 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_hardware_type_success_groups [0.102864s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_012_third_party_admin_can_post_nodes [0.237563s] ... 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-ebeba958-3f14-41bc-a1ba-ab8f40873b8e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_057_nodes_states_get_admin [0.126755s] ... 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-6b3d02e3-0e2c-4ada-a5fd-df34b156e79a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_058_nodes_states_get_member [0.127585s] ... 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-6198c2bf-a7e5-44e5-ae26-ce80fb26ae68 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_013_owner_member_cannot_post_nodes [0.259182s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-729d564d-0219-4565-ae94-bd534d00bd96 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object [1.040738s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_059_nodes_states_get_reader [0.138531s] ... 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-0ed0e62c-d08d-48a2-b09c-58625a77542c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null} {2} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_reset_interval [0.587768s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_014_owner_reader_cannot_post_reader [0.330005s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f321f065-3abd-4d3a-93af-ba34d81cf11b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_060_nodes_states_power_put_admin [0.296651s] ... 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-b7485fa2-d78b-40e9-bd93-e6deecdc571d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_reset_interval_not_happen_sqlite [0.117987s] ... ok {2} ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_uncached [0.051718s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_061_nodes_states_power_put_member [0.143170s] ... 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-7ba4eece-6b05-4ba5-bb09-ad9b06c7603b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_automatic_retry [0.083897s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_015_owner_admin_can_get_node [0.250283s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1a0f7497-0881-4a03-8121-d7c21e45d13b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "bookmark"}]}, {"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "faaae356-d30c-4ad7-9ad8-e1a1f0cb1542", "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.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_driver_not_found [0.062449s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_062_nodes_states_power_put_reader [0.131687s] ... 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-444c829a-17ee-4acd-ae77-e41c97c7f700 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success [0.034262s] ... ok {2} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success_groups [0.032939s] ... ok {2} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_reset_interval [0.035890s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_063_nodes_states_boot_mode_put_admin [0.137015s] ... 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-d545caa7-8d2a-4cbc-95ca-05bdaf56ce15 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_reset_interval_not_happen_sqlite [0.061184s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_016_owner_manager_can_get_node [0.239853s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6a04c4ab-093e-417f-aad0-5a49da7d6b14 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "bookmark"}]}, {"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "acfd9387-e60c-4d55-91b8-a59265e09637", "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.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_uncached [0.076477s] ... ok {2} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test__append_filename_param_with_filename [0.074614s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_064_nodes_states_boot_mode_put_member [0.208512s] ... 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-80e5f1b7-8960-41cd-a1ae-8f9bb6916f43 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test__append_filename_param_with_qs [0.071827s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_017_owner_member_can_get_node [0.192746s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3e17ca2a-ab77-4088-b604-67cbf4982723 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "bookmark"}]}, {"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "325e3aa0-67d0-415e-8d09-c4ae6997b313", "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.common.test_image_publisher.SwiftPublisherTestCase.test__append_filename_param_without_qs [0.066401s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_065_nodes_states_boot_mode_put_reader [0.135541s] ... 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-cd46d3b4-ca90-4497-967d-954da63dedfe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_018_owner_reader_can_get_node [0.126012s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7812b171-6719-46b6-93e8-1f054ed4f155 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "self"}, {"href": "http://localhost/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "bookmark"}]}, {"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "2e742e5a-177c-4ba0-93a9-c195eb120347", "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.common.test_image_publisher.SwiftPublisherTestCase.test_publish [0.111970s] ... ok {2} ironic.tests.unit.common.test_image_publisher.SwiftPublisherTestCase.test_unpublish [0.066099s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_066_nodes_states_secure_boot_put_admin [0.130115s] ... 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-86490e00-7d6a-4bb2-b866-9ee7b85fe762 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test__validate_url_is_specific [0.040699s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_019_lessee_admin_can_get_node [0.143857s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-321f3d42-d2a3-492d-981f-fb3221651162 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "657a6363-ec99-460b-9a7b-296952037462", "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.common.test_image_service.OciImageServiceTestCase.test__validate_url_is_specific_bad_format [0.040861s] ... ok {2} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test__validate_url_is_specific_not_specific [0.041565s] ... ok {2} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_download_direct_manifest_reference [0.041020s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_067_nodes_states_secure_boot_put_member [0.173028s] ... 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-a27f3411-6c34-401c-9f12-f6ce4daf2833 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_020_lessee_manager_can_get_node [0.182861s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bbb01e93-d038-4e28-a9db-84ed67390fc2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "81ff6afa-89d6-464a-b8ec-2d7ab6f955cc", "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.common.test_image_service.OciImageServiceTestCase.test_download_direct_manifest_reference_just_digest [0.088558s] ... ok {2} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_identify_specific_image [0.045228s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_068_nodes_states_secure_boot_put_reader [0.162158s] ... 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-bb0caa60-ac40-4e60-ab47-3468b221d16e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_identify_specific_image_aarch64 [0.087746s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_021_lessee_member_can_get_node [0.151146s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-26adc081-b5ae-45b4-92c8-81246cdecb59 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "523f0bf8-b6f7-40a9-992e-51f9cb0d9702", "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.common.test_image_service.OciImageServiceTestCase.test_identify_specific_image_bad_manifest [0.083624s] ... ok {2} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_identify_specific_image_local [0.057700s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_069_nodes_states_provision_put_admin [0.150980s] ... 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-91bbb8c7-8a38-4403-b09b-699d6265fe06 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_identify_specific_image_specific_digest [0.062921s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_022_lessee_reader_can_get_node [0.195903s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-06570d3b-5585-40c5-8f08-e68a68ab228a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "instance_uuid": "e513ce54-d9c1-4361-b649-cc828e5f3cb9", "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.common.test_image_service.OciImageServiceTestCase.test_show [0.059322s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_070_nodes_states_provision_put_member [0.143844s] ... 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-18ff55b0-dda5-4af6-8ef8-b4260843834b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_create_container_fails [1.892266s] ... ok {2} ironic.tests.unit.common.test_image_service.OciImageServiceTestCase.test_validate_href [0.050013s] ... ok {2} ironic.tests.unit.common.test_images.ImageDetectFileFormatTestCase.test_detect_file_format_fails_multiple [0.073371s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_023_third_party_admin_cannot_get_node [0.186221s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c983ed2a-81db-4c85-aab7-ae8ed98c4eeb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": []} {2} ironic.tests.unit.common.test_images.ImageDetectFileFormatTestCase.test_detect_file_format_passes [0.064111s] ... ok {2} ironic.tests.unit.common.test_images.ImageDetectFileFormatTestCase.test_detect_file_format_passes_iso_gpt [0.068584s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_024_owner_reader_can_get_their_node [0.206418s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e99cf837-1910-466c-8546-1a9f5f753e25 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2025-05-07T22:58:46.506692+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"}]} {2} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_all_conditions_fail [0.145986s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_ironic_exception [0.171333s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_025_owner_reader_cannot_get_other_node [0.223307s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/de47623f-d51d-46f3-9d70-fed91feceec3 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-fcf64d22-2dcf-4e60-8b48-071aac184fe4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node de47623f-d51d-46f3-9d70-fed91feceec3 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_no_rules [0.172469s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_071_nodes_states_provision_put_reader [0.815742s] ... 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-9ecca44b-55cc-4619-81a5-a45b799ee3ec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_026_lessee_reader_can_get_their_node [0.281395s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ce8cf45a-5d3b-4938-855d-1f541b443a6e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-05-07T22:58:47.021868+00:00", "updated_at": "2025-05-07T22:58:47.041998+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": "e7c4ae15-8cfa-434c-8d90-e421da217df4", "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": "e7c4ae15-8cfa-434c-8d90-e421da217df4", "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.common.test_inspection_rule.TestApplyRules.test_apply_rules_some_conditions_pass [0.138590s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_072_nodes_states_provision_put_service [0.148827s] ... 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-4560cc61-027e-4cfb-8f1f-5b427093e465 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_success [0.146630s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_027_lessee_reader_cant_get_other_node [0.174414s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/57a6c265-7894-41b6-96a4-1167118f46ae WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9b1bfe37-b306-4a4b-9459-bcd20ba986a0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 57a6c265-7894-41b6-96a4-1167118f46ae could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_028_third_party_admin_cant_get_node [0.103709s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/ce5862a7-b827-4ddc-bed5-f03833db4b2c WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ae10bd14-ae17-430e-bc0a-e176a686a93b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node ce5862a7-b827-4ddc-bed5-f03833db4b2c could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_073_nodes_states_raid_put_admin [0.175794s] ... 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-9a74e610-d2cc-41e5-8d56-a510489b90e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_with_always_mask [0.171549s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_074_nodes_states_raid_put_member [0.129913s] ... 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-10579588-d58b-4dce-a8c8-77e11a20b843 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_with_never_mask [0.173728s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_075_nodes_states_raid_put_reader [0.147758s] ... 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-b00e980c-cead-44a1-b169-c96f177b90cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_inspection_rule.TestApplyRules.test_apply_rules_with_sensitive_mask [0.117013s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_029_owner_reader_can_get_restricted_fields [0.421072s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6755ee30-c1cc-4560-9484-a4c3f19abdc8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2025-05-07T22:58:47.792932+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"}]} {2} ironic.tests.unit.common.test_inspection_rule.TestInterpolation.test_variable_interpolation [0.120338s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_076_nodes_states_console_get_admin [0.182287s] ... 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-5a6fa534-5cd7-4bf4-8a38-5c8fd95e81b5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_030_lessee_reader_cannot_get_restricted_fields [0.156281s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6551ba8b-d6fc-4e5f-b273-b2b399b9a641 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-05-07T22:58:47.919057+00:00", "updated_at": "2025-05-07T22:58:47.943780+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": "9f3bbaa5-e943-48a6-af1f-c546a91238be", "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": "9f3bbaa5-e943-48a6-af1f-c546a91238be", "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.common.test_network.GetPhysnetsByPortgroupID.test_empty [0.137027s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_077_nodes_states_console_get_member [0.199903s] ... 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-b9555072-a97c-4661-aff8-061e36bb4a8f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port [0.145238s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_swift.SwiftTestCase.test_create_object_create_object_fails [1.900610s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_031_owner_reader_can_get_detail [0.223810s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2c87b338-5f58-41a0-bfde-dc9e2fb4352c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "created_at": "2025-05-07T22:58:48.069155+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-07T22:58:48.104459+00:00", "updated_at": "2025-05-07T22:58:48.126018+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": "4cdecb0a-924d-4671-864a-4936d4810c27", "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": "4cdecb0a-924d-4671-864a-4936d4810c27", "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.api.test_acl.TestRBACScopedRequests.test_system_scoped_078_nodes_states_console_get_reader [0.164873s] ... 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-282ab43b-8bd1-400e-97df-ab7028cf082f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port_no_id [0.123146s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_032_lessee_reader_can_get_detail [0.171662s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f3ab40b5-a558-4bae-8e78-bc06112f73ad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": [{"uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f", "created_at": "2025-05-07T22:58:48.309489+00:00", "updated_at": "2025-05-07T22:58:48.326398+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": "6f933d43-0aa8-4023-b158-ee2578544655", "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": "6f933d43-0aa8-4023-b158-ee2578544655", "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.common.test_network.GetPhysnetsByPortgroupID.test_one_port [0.114557s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_079_nodes_states_console_get_service [0.148925s] ... 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-7e10580a-2fdd-4f4f-b5bc-cd8745529fad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports [0.122702s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_033_third_party_admin_cannot_get_detail [0.163897s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c6a31dfb-f61c-4c6c-8cd5-fff8c3f51104 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": []} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_080_nodes_states_console_put_admin [0.132450s] ... 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-902aa418-4fe2-43dc-b493-ef3e45990697 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports_inconsistent [0.092518s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestUnbindPort.test_unbind_neutron_port [0.042686s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_081_nodes_states_console_put_member [0.116942s] ... 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-1cb4cb09-da53-494a-8b43-700888a0cba7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_client_passed [0.032985s] ... ok {2} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_failure [0.060640s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_034_owner_admin_can_patch_node_extra [0.303909s] ... 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-021bbec6-1bcf-4d69-895d-7bdeedfa5548 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_found [0.092463s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_082_nodes_states_console_put_reader [0.182158s] ... 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-3d9cfcec-acb5-4b6a-911f-def23367e90f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_reset_mac [0.062783s] ... ok {2} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address [0.048624s] ... ok {2} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_show_failed [0.061318s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_083_nodes_states_console_put_service [0.200825s] ... 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-c1f96c9e-d1bb-4247-93c6-99e9b2a7c71a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_unbind_port_failed [0.074486s] ... ok {2} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_binding [0.059052s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_035_owner_manager_can_patch_node_extra [0.328027s] ... 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-f79b24c8-7ce5-4490-9a1f-050617415b71 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_exception [0.058352s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_084_nodes_vendor_passthru_methods_get_admin [0.176610s] ... 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-6d6c3040-bb56-4ec3-8f29-282c71447cb8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_without_binding [0.042658s] ... ok {2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_invalid_power_update [0.067125s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_036_owner_member_can_patch_node_extra [0.200917s] ... 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-7dd51977-fec2-466d-a117-b3852ad3617e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_085_nodes_vendor_passthru_methods_get_member [0.177870s] ... 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-3012e37c-67d0-4321-8e93-9c5abdd51eac X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_086_nodes_vendor_passthru_methods_get_reader [0.184796s] ... 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-f6a6d763-1376-4ee6-9434-a03858d1bad2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_037_owner_reader_cannot_patch_node_extra [0.240639s] ... 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-0f6af076-a395-4565-a1a6-66e599ba5df8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_from_data [1.513901s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_087_nodes_vendor_passthru_get_admin [0.203215s] ... 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-5441a16a-8501-4b31-8e70-e7e677c556b9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_038_lessee_admin_can_patch_node_extra [0.341394s] ... 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-d9e118b1-d99c-4592-8028-68c795f21bfd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_1 [0.637563s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_088_nodes_vendor_passthru_get_member [0.190308s] ... 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-0aba86f3-0cad-4f69-bb55-e76083875e06 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_2 [0.078957s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_039_lessee_manager_can_patch_node_extra [0.133347s] ... 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-6b80b4e8-49d9-4a9f-929c-c8908208615c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_3 [0.091719s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_089_nodes_vendor_passthru_get_reader [0.188345s] ... 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-9502b9dd-efa1-4f66-b68a-a1412a279ad7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_4 [0.074139s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_040_lessee_member_can_patch_node_extra [0.127192s] ... 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-69c62a9f-3327-4749-bafe-456e67a41e39 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_5 [0.063293s] ... ok {2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed [0.054593s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_041_lessee_reader_cannot_patch_node_extra [0.121802s] ... 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-c4b465d7-c63a-4dc8-b8cf-4c4d17c00327 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_090_nodes_vendor_passthru_post_admin [0.168605s] ... 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-fdc99ce6-1d0d-46d7-98bb-f6396441ec83 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova [0.046715s] ... ok {2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova_auth_url [0.062004s] ... ok {2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_1 [0.051359s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_042_third_party_admin_cannot_patch_node_extra [0.171060s] ... 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-29afd3c1-a0f6-47be-aa33-965c3d63bbfa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_2 [0.041284s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_091_nodes_vendor_passthru_post_member [0.178806s] ... 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-b2261a09-8ea1-4e05-95c7-5bb938543744 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_3 [0.054914s] ... ok {2} ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_4 [0.076441s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_092_nodes_vendor_passthru_post_reader [0.203010s] ... 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-77f9cf92-672a-445a-9fa8-f550437c8f23 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe [0.190587s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_043_owner_admin_can_change_drivers [0.378378s] ... 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-c1b067bb-8559-47eb-9983-a94f6c78196b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_093_nodes_vendor_passthru_put_admin [0.211485s] ... 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-99438fba-8825-473c-80e1-06a67eea0aca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_ipxe_timeout [0.148020s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_094_nodes_vendor_passthru_put_member [0.202622s] ... 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-b36f90d7-fe81-4372-a5a5-123a9c9c0cd2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot [0.201719s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_044_owner_manager_can_change_drivers [0.328313s] ... 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-97f36cae-a51d-489f-b260-8d5d024366c4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_and_iscsi_boot_from_lists [0.168886s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_095_nodes_vendor_passthru_put_reader [0.209060s] ... 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-633040c7-c9b1-4b14-aecc-6abaddbefb4b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_045_owner_member_can_patch_all_the_things [0.237828s] ... 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-8ce1f283-5955-48f2-94d7-2a31c9540210 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_from_data_create_container_fails [1.800673s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_boot_iso [0.185958s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_096_nodes_vendor_passthru_delete_admin [0.186305s] ... 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-eb8f7c4e-65d9-4952-85c8-a530e1f11b28 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_046_owner_member_can_change_lessee [0.220186s] ... 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-9808a176-6e5b-4b73-9016-28e83b8878c0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_097_nodes_vendor_passthru_delete_member [0.144158s] ... 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-5d2a791b-1845-458e-8579-c20f67a12e4a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_ipa_debug [0.241865s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_047_lessee_admin_cannot_change_lessee [0.240129s] ... 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-e7eaac78-27c4-42ba-b70e-4a8c2ba8c381 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:lessee\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_098_nodes_vendor_passthru_delete_reader [0.211309s] ... 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-6a15bb1b-a8e2-4bce-83a0-6e32b4f3b2f5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_local_boot [0.158814s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue [0.048228s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue_swift [0.050115s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue_timeout [0.050487s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_swift_partition [0.045604s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_048_lessee_manager_cannot_change_lessee [0.231354s] ... 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-c8aec3d6-2064-4553-8691-a741c8ea0ea0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:lessee\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_099_nodes_traits_get_admin [0.233056s] ... 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-f0df7571-55e8-4ca5-9305-18dd5bfdc728 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"traits": ["trait1"]} {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_swift_wdi [0.046603s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_clean_up_ipxe_config_uefi [0.042508s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_instance_ipxe_bios [0.064545s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_instance_ipxe_uefi [0.067364s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_049_lessee_admin_cannot_change_owner [0.237889s] ... 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-90ea42c8-9532-4a39-9ab1-8291ebb4d97b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:owner\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_100_nodes_traits_get_member [0.226084s] ... 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-5fcec9f1-ee6d-43b3-9227-9bdf99bc60de X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"traits": ["trait1"]} {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_ipxe_ipv6 [0.076153s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_ipxe_ipv6_uefi [0.071967s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options [0.096857s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_101_nodes_traits_get_reader [0.220061s] ... 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-5667daba-9169-48ae-bd7d-e95120e85c68 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"traits": ["trait1"]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_050_lessee_manager_cannot_change_owner [0.229721s] ... 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-e292c2d3-5a84-4160-a1a2-2d2e9159bbf0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:owner\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options_hexadecimal_lunid [0.118271s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_102_nodes_traits_put_admin [0.153146s] ... 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-2375d4d2-4e30-4135-9e73-a64bb73eff7d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options_unsupported_additional_volume_type [0.122488s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_051_owner_admin_can_change_lessee [0.266365s] ... 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-4e655651-e79a-4ad5-908f-bd644c8384c3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options_unsupported_volume_type [0.113548s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_103_nodes_traits_put_member [0.226354s] ... 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-54b706fa-46a2-400e-ae62-e061855ef901 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildServicePXEConfigTestCase.test_build_service_pxe_config_adopt [0.123921s] ... ok {2} ironic.tests.unit.common.test_pxe_utils.iPXEBuildServicePXEConfigTestCase.test_build_service_pxe_config_servicing [0.125436s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_052_owner_manager_can_change_lessee [0.325453s] ... 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-5ca7fe29-61bb-4b8b-a068-a71b9edfd957 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_104_nodes_traits_put_reader [0.238347s] ... 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-b981f56b-da4f-40fa-939b-1287a6310d15 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image [0.070601s] ... ok {2} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_flags [0.044358s] ... ok {2} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_just_fails [0.052893s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_053_owner_admin_cannot_change_owner [0.150934s] ... 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-e67a9d0d-f9ab-432c-a9e9-5515c5dfcd6b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:owner\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_retries [0.068985s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_105_nodes_traits_delete_admin [0.235142s] ... 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-814ecf54-1976-46ca-952e-785e997ce5e3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_retries_alternate_error [0.059739s] ... ok {3} ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_from_data_create_object_fails [2.059433s] ... ok {2} ironic.tests.unit.common.test_qemu_img.ConvertImageTestCase.test_convert_image_retries_and_fails [0.060558s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_054_owner_manager_cannot_change_owner [0.194258s] ... 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-4e5c7e1a-c2d2-47a9-97bd-2342d1c50738 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:owner\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_contains_all_db_objects [0.052780s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_106_nodes_traits_delete_member [0.166299s] ... 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-eeea7464-abbf-4e3a-96d2-f5ac5163fcea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_055_lessee_member_can_set_protected [0.250729s] ... 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-162ed061-34fb-41b3-a000-321aa4397ca2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_107_nodes_traits_delete_reader [0.192574s] ... 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-d5bb3f49-025f-4704-a106-766cefd1cf19 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_056_lessee_member_cannot_patch_instance_info [0.156161s] ... 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-4ea9165a-5ea6-4175-90d5-be512019102e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_108_nodes_traits_trait_put_admin [0.214501s] ... 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-c8e342e5-cf8f-4b52-9b61-fefc6cc2d466 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_object_versions [0.530578s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_057_lessee_member_cannot_patch_driver_info [0.179004s] ... 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-492a1af1-278b-4ed8-ac2e-d9fa44717057 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:driver_info\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_rpc_version [0.066256s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_109_nodes_traits_trait_put_member [0.152192s] ... 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-980ac144-b124-4a30-acdc-fea3455b53fb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_no_gaps_in_object_versions [0.042927s] ... ok {2} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_object_names_are_registered [0.053900s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_058_lessee_member_cannot_patch_properties [0.170589s] ... 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-b2e674e2-729b-4a80-bc5e-8cc327b2e44f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:properties\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_110_nodes_traits_trait_put_reader [0.147905s] ... 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-35611806-caf3-47ff-a3b0-c0606bc4c9d4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_rpc_and_objects_versions_supported [0.069776s] ... ok {2} ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_structure [0.047220s] ... ok {2} ironic.tests.unit.common.test_states.StatesTest.test_state_values_length [0.051429s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_111_nodes_traits_trait_delete_admin [0.143942s] ... 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-57b17391-fce2-4a6c-a731-67a89ac2ea72 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_059_lessee_member_cannot_patch_network_data [0.181050s] ... 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-ab20176a-23af-4d86-b462-d70d8b8d12d5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:network_data\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities [0.044251s] ... ok {2} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_add_to_existing_capabilities [0.053330s] ... ok {2} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_capabilities_not_dict [0.061762s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_112_nodes_traits_trait_delete_member [0.148451s] ... 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-71ca51e6-0761-44a1-92de-e08b72c458fa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_invalid_capabilities [0.051525s] ... ok {2} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_multiple_keys [0.047590s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_060_lessee_member_cannot_patch_name [0.259076s] ... 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-e594c9b9-4f42-4a8d-97c2-d741616678de X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:name\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_replace_to_existing_capabilities [0.048472s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_113_nodes_traits_trait_delete_reader [0.135467s] ... 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-d87a7cdb-597f-4bad-9000-ed62b3f880c7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port [0.051311s] ... ok {2} ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port_fail [0.057486s] ... ok {2} ironic.tests.unit.common.test_utils.IsHttpUrlTestCase.test_is_http_url [0.045208s] ... ok {2} ironic.tests.unit.common.test_utils.MkfsTestCase.test_mkfs [0.057331s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_114_nodes_vifs_get_admin [0.194860s] ... 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-49db953e-88b6-410a-9d43-6f46f3d16d76 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_061_lessee_member_cannot_patch_retired [0.249559s] ... 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-3c7265b8-883e-4108-b4bd-db10a0628548 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:retired\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_utils.MkfsTestCase.test_mkfs_with_label [0.057435s] ... ok {2} ironic.tests.unit.common.test_utils.MkfsTestCase.test_mkfs_with_unexpected_error [0.046017s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_115_nodes_vifs_get_member [0.122013s] ... 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-3f385036-7334-478d-86e8-8445be77de36 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.common.test_utils.MkfsTestCase.test_mkfs_with_unsupported_fs [0.058717s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_116_nodes_vifs_get_reader [0.145477s] ... 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-c5302557-9111-47c3-bb23-6f9e2a055189 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_062_owner_admin_can_patch_node_instance_info [0.350929s] ... 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-30243dd3-5bbe-4b80-81e8-a30e7a25a629 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object [1.970127s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_all [0.338009s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_063_owner_manager_can_patch_node_instance_info [0.336305s] ... 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-a01128a5-2b6c-4774-97b6-c696f96fe167 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_async [0.269228s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_117_nodes_vifs_get_service [0.544699s] ... 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-184a6489-9a62-4047-a8f4-5dd1aca1e877 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_118_nodes_vifs_post_admin [0.129167s] ... 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-f3ceb436-32c9-4c48-a3ab-1b06eb1a86df X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_continue_from_last_step [0.290122s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_064_owner_member_can_patch_node_instance_info [0.343377s] ... 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-d395d6bb-c44f-427e-9a06-ab42cc18ff49 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_119_nodes_vifs_post_member [0.150172s] ... 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-554975cd-d414-408e-b721-37d9a55cfcb6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_120_nodes_vifs_post_reader [0.143033s] ... 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-1befc19f-fe67-4c97-815f-270aae329500 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_065_owner_reader_can_patch_node_instance_info [0.235179s] ... 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-b0c8bbf2-b13b-43d6-841f-ed420b7dae7e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_121_nodes_vifs_post_service [0.144202s] ... 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-97f53441-641c-40dd-98a3-24512ecf3c48 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_dynamic [0.375176s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_066_lessee_admin_can_patch_node_instance_info [0.226216s] ... 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-05c4a364-796d-445b-85b6-79325b9ab28e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_122_nodes_vifs_post_service_project [0.139179s] ... 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-c2007345-888c-4c3c-bab2-46639f560cef X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_123_nodes_vifs_node_vif_ident_delete_admin [0.135144s] ... 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-44075b93-d1e7-4a57-bec9-096b801ef416 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_067_lessee_manager_can_patch_node_instance_info [0.199429s] ... 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-050c3633-e6c2-40df-b096-745f3ff80c85 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_fast_track [0.331696s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_124_nodes_vifs_node_vif_ident_delete_member [0.139215s] ... 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-c572003d-c16b-4fe6-944e-4a5a75587434 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_068_lessee_member_cannot_patch_node_instance_info [0.138577s] ... 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-a5d6de0a-043a-4089-a438-c244a2655d66 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_125_nodes_vifs_node_vif_ident_delete_reader [0.151783s] ... 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-588a969f-c5d7-45cd-97be-8422e21fc89f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:detach\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_in_deploywait [0.272607s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_069_lessee_reader_can_patch_node_instance_info [0.161123s] ... 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-c57e8f0f-ae6c-4e5b-972f-4ae0860e0a56 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_126_nodes_vifs_node_vif_ident_delete_service [0.154219s] ... 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-9d7c291e-8d5f-4324-8409-955d6d95b6d1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done [0.187127s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_070_third_party_admin_cannot_patch_node_instance_info [0.216744s] ... 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-24821e6f-9ee7-498a-a729-75121fae828b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_127_nodes_management_indicators_get_allow ... SKIPPED: Not implemented yet {3} ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc [1.956077s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_128_nodes_management_indicators_component_get_allow ... SKIPPED: Not implemented yet {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console [0.229675s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_129_nodes_management_indicators_component_ind_ident_get_allow ... SKIPPED: Not implemented yet {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_130_nodes_management_indicators_component_ind_ident_put_allow ... SKIPPED: Not implemented yet {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done_with_console_error [0.214875s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_131_portgroups_get_admin [0.139847s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0d4697aa-7f9a-4473-bfd1-2d95797d5a1a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_none [0.190459s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_132_portgroups_get_member [0.149509s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2c1a266d-5df0-4858-9415-e9ee68a97db3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy [0.110633s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_071_owner_admin_cannot_delete_nodes [0.793872s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-47664baf-d768-4ccb-a823-d1dcc2a0c462 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_133_portgroups_get_reader [0.142237s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-faccea9e-c6a6-4b02-9398-0dee178426d4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_deploy_first_agent_boot [0.104516s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_no_skip_step [0.104508s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_134_portgroups_post_admin [0.178566s] ... 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/b87d0cb2-4642-459a-a9ad-ceda7714db2f Openstack-Request-Id: req-f34d9fc4-2b82-4ef1-93d9-5f2ac3dfa374 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b87d0cb2-4642-459a-a9ad-ceda7714db2f", "created_at": "2025-05-07T22:58:58.361392+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/b87d0cb2-4642-459a-a9ad-ceda7714db2f", "rel": "self"}, {"href": "http://localhost/portgroups/b87d0cb2-4642-459a-a9ad-ceda7714db2f", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/b87d0cb2-4642-459a-a9ad-ceda7714db2f/ports", "rel": "self"}, {"href": "http://localhost/portgroups/b87d0cb2-4642-459a-a9ad-ceda7714db2f/ports", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_072_owner_admin_can_delete_nodes [0.229841s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-9cd22c01-ae8e-4156-8a37-00b97f6b4528 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_steps_validation [0.113661s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_135_portgroups_post_member [0.159511s] ... 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-5029c4d9-01af-40d3-813e-81dd4a7786e7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_073_service_cannot_delete_owner_admin_nodes [0.213595s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7599b6d7-c5e2-46fb-a991-8a42e7417cd2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_agent_busy [0.188984s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_136_portgroups_post_reader [0.146709s] ... 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-0bcb1a6d-da1e-4a96-a09a-a16e10ec3da2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_137_portgroups_detail_get_admin [0.133244s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4b151f3a-4f38-4568-97f3-99bb21196f39 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:58.767734+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.TestRBACProjectScoped.test_project_scoped_074_service_can_delete_nodes_in_own_project [0.220390s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-952784b5-a528-4250-a8a6-7cb35047f1f1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_138_portgroups_detail_get_member [0.147566s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6a33d00a-d67c-4229-9661-7050aa3e74c2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:58.917969+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.TestRBACProjectScoped.test_project_scoped_075_owner_manager_cannot_delete_nodes [0.239096s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0f440b2f-ada3-4370-aae6-51c9454bf1ab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_139_portgroups_detail_get_reader [0.132878s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4ee5d9c6-d8db-40b5-a497-45547f815deb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:59.056549+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_140_portgroups_portgroup_ident_get_admin [0.148373s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1c6f9e6a-c1d2-4a0b-a77c-5281dbef1922 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:59.198252+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.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_bad_step_return_value [0.650385s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_076_lessee_admin_cannot_delete_nodes [0.217606s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4c7972a8-016a-4aa3-9b9a-c8e87c7a2867 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_141_portgroups_portgroup_ident_get_member [0.158976s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0439f19f-ab12-4491-855d-e7c57e85967d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:59.353114+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.TestRBACProjectScoped.test_project_scoped_077_lessee_manager_cannot_delete_nodes [0.178325s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cb878041-8d60-4246-8ae7-e0e58f6bb1b7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_142_portgroups_portgroup_ident_get_reader [0.160108s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-04ab2b3a-b8f1-4c5b-86cf-cb20682b0233 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:58:59.517683+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.common.test_swift.SwiftTestCase.test_delete_object_exc_resource_not_found [2.121607s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_078_third_party_admin_cannot_delete_nodes [0.136813s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c89cf5c6-aeae-4ce8-b5fa-b7e922fe86e9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_exception [0.352467s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_143_portgroups_portgroup_ident_patch_admin [0.175769s] ... 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-992de3bb-df1d-423c-9b01-6604253ee9d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_079_owner_admin_can_validate_node [0.139386s] ... 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-bddd93da-0f6b-4a4f-9dad-8a2f4bdc0f55 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_144_portgroups_portgroup_ident_patch_member [0.157125s] ... 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-f0a3bc69-7e1a-45e2-8d38-43a5d4074507 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_handled_exception [0.290605s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_080_owner_manager_can_validate_node [0.157235s] ... 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-6d9f5945-ce6c-4ad1-9a2d-b9466873af68 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_145_portgroups_portgroup_ident_patch_reader [0.166316s] ... 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-70e99582-ae43-4aef-bd2f-383ccbdb904c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_081_lessee_admin_can_validate_node [0.234559s] ... 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-775dee6c-8230-44c7-9490-c7e09b0902b6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_146_portgroups_portgroup_ident_delete_admin [0.157916s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-961c6000-1d3f-499a-a4ee-488ade4a47bb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_ironic_exception [0.342805s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_147_portgroups_portgroup_ident_delete_member [0.133943s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b45f88fb-8474-4065-a9cc-454befff998b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_handles_hold_from_active [0.125337s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_082_lessee_manager_can_validate_node [0.230534s] ... 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-191b885f-7103-4f62-900c-02196cc94e16 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_handles_hold_from_wait [0.065003s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_148_portgroups_portgroup_ident_delete_reader [0.158146s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-44886abf-6c25-4efb-8b85-e2c025121100 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_083_owner_member_can_validate_node [0.216373s] ... 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-b97b31e1-6932-4731-af8c-30a5096f2108 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_149_nodes_portgroups_get_admin [0.210931s] ... 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-8e9cd331-78b2-400f-b3e4-547fbff6dcc4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_no_steps [0.329686s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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( {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_084_lessee_member_cannot_validate_node [0.227195s] ... 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-1bce3a34-7ab8-44ec-9975-fb9813269098 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:validate\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_150_nodes_portgroups_get_member [0.212140s] ... 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-eb513182-02f7-4921-99a6-9e8afc50fa7d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_oob_reboot [0.279831s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_085_third_party_admin_cannot_validate_node [0.212670s] ... 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-d85cfb96-285e-4600-90df-e4752aa6c228 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_151_nodes_portgroups_get_reader [0.219896s] ... 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-418cd4ef-7a99-4c96-a909-45403f9da47d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_086_owner_admin_can_set_maintenance [0.248798s] ... 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-2d763c0c-c2a7-43a1-9a31-6f833caad73c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_152_nodes_portgroups_get_service [0.222743s] ... 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-f1aa040c-0299-4bf7-ad4b-1dc9a8ba2ec0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {2} ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_do_next_deploy_step_oob_reboot_fail [0.330758s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_153_nodes_portgroups_get_service_project [0.143938s] ... 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-da8a613d-84dc-4088-94f0-5ad5c8dd5e00 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_db_error [0.180083s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_087_owner_manager_can_set_maintenance [0.230733s] ... 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-46ae63df-f922-4bfb-a07a-180cb100713c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_154_nodes_portgroups_get_service_project_disabled [0.138004s] ... 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-8632ed30-76c2-466e-81ed-858259e0cc33 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_088_lessee_admin_can_set_maintenance [0.215633s] ... 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-87233d66-19ad-41d9-b869-fd177feda00b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_swift.SwiftTestCase.test_get_temp_url [2.189527s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_swift_error [0.228989s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_155_nodes_portgroups_detail_get_admin [0.157296s] ... 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-dba78d32-e6df-4d19-8844-37a7c3bfeeb1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:59:01.782776+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.common.test_utils.ExecuteTestCase.test_execute_command_not_found [0.087896s] ... ok {3} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_not_use_standard_locale [0.060985s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_156_nodes_portgroups_detail_get_member [0.164749s] ... 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-b3db2a80-c307-4060-85a5-6b807eb9f537 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:59:01.963088+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.TestRBACProjectScoped.test_project_scoped_089_lessee_manager_can_set_maintenance [0.224422s] ... 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-3168fcba-84d4-4ba4-8394-1312e8e3df72 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables [0.065354s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_configdrive_unexpected_error [0.234693s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_with_env_variables [0.063206s] ... ok {3} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_with_log_stdout_default [0.087697s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_090_owner_member_can_set_maintenance [0.208253s] ... 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-39ec89ac-29fb-4aa7-a280-97e4f53f04b7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_157_nodes_portgroups_detail_get_reader [0.257490s] ... 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-a4f5dd5d-5541-4948-83b8-af0c3962e99a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:59:02.137903+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.common.test_utils.ExecuteTestCase.test_execute_with_log_stdout_false [0.072629s] ... ok {3} ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_with_log_stdout_true [0.082218s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_091_lessee_member_cannot_set_maintenance [0.209297s] ... 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-cd1bc807-130f-4b34-9cd4-25cf4167a219 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_maintenance\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object [0.077847s] ... ok {3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object_throws_for_invalid_or_unsupported_hash_name [0.054911s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_ironic_exception [0.487081s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_158_nodes_portgroups_detail_get_service [0.300970s] ... 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-3551e008-41be-4853-a7c2-f52f610d7239 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:59:02.426738+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.common.test_utils.GenericUtilsTestCase.test_file_has_content_differ [0.068299s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_092_third_party_admin_cannot_set_maintenance [0.170932s] ... 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-753a493d-8b55-4181-b7c1-2bbac6cd9a82 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal [0.090296s] ... ok {3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal_not_binary [0.082239s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_093_owner_admin_can_unset_maintenance [0.263357s] ... 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-11b7f76c-9b53-43fa-afd4-5ae038aaa4c2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_fips_enabled [0.135743s] ... ok {3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_hostname_safe [0.017143s] ... ok {3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_datapath_id [0.017095s] ... ok {3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_logical_name [0.017333s] ... ok {3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_no_proxy [0.017335s] ... ok {3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip [0.018309s] ... ok {3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip_not_raises_exceptions [0.034936s] ... ok {3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_unix_file_modification_datetime [0.036079s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_error_old [0.557237s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_datapath_id [0.114118s] ... ok {3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac [0.081340s] ... ok {3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac_invalid_format [0.084705s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_094_owner_manager_can_unset_maintenance [0.487590s] ... 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-0cd059d7-6a90-4e83-a379-67f0473568a1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_wrap_ipv6 [0.062151s] ... ok {3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_find_devices_all [0.080754s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_prepare_error [0.393296s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_095_lessee_admin_can_unset_maintenance [0.252159s] ... 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-af9a304d-e669-42fb-ae51-7a557a97cf21 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_159_nodes_portgroups_detail_get_service_project [1.094837s] ... 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-749a9daf-e9d9-48a3-ae33-0b5b2c6cdad2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2025-05-07T22:59:03.574346+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.TestRBACProjectScoped.test_project_scoped_096_lessee_manager_can_unset_maintenance [0.140718s] ... 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-4dff2406-e0c9-449d-9fe6-297743cab751 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_097_owner_member_can_unset_maintnenance [0.128429s] ... 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-f3ef6b19-e4f4-4c4d-9a83-e7d181a12b91 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_160_nodes_portgroups_detail_get_service_project_disabled [0.224465s] ... 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-482d5128-233e-4701-9225-7a4b2c02b69c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception [0.401130s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_098_lessee_member_cannot_unset_maintenance [0.134101s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/maintenance GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b1f412b1-e973-46cd-8a4c-0f611f525a00 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:clear_maintenance\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_161_ports_get_admin [0.221942s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b971a821-0700-4326-9a1d-e9978f16051b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_099_third_party_admin_cannot_unset_maintenance [0.136182s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/93eff111-7a54-470f-ade9-3bd8db0c901a/maintenance GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3599cf19-2647-4e15-ba46-2710509b5828 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 93eff111-7a54-470f-ade9-3bd8db0c901a could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_fast_track [0.344632s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_100_owner_admin_can_set_boot_device [0.136739s] ... 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-f1609292-d243-46c6-9594-c31f63564582 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_find_devices_name [0.862988s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_162_ports_get_service [0.222596s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-10c31e4b-ac74-4ac9-aad1-4ae258f636cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_find_devices_none [0.061486s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_101_owner_manager_can_set_boot_device [0.131706s] ... 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-866861e2-2be2-449a-868b-a435a4bbbd73 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_empty_device_attribute [0.061441s] ... ok {3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_multiple_hints [0.096196s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_163_ports_get_service_project [0.229745s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f45ecce9-4a3b-4474-b418-1b06d7ca666d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok [0.387043s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_multiple_hints2 [0.090336s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_102_lessee_admin_cannot_set_boot_device [0.235898s] ... 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-011fbc9d-485a-43fe-a69d-7eb95ef81f40 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_multiple_hints3 [0.079114s] ... ok {3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_no_device_found [0.115854s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_164_ports_get_service_project_disabled [0.266145s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-695640df-758c-4ab8-97be-8883d0e52ae3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_no_operators [0.070582s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_103_lessee_manager_cannot_set_boot_device [0.249088s] ... 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-e049a665-96d9-4adc-a992-430598f08481 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_one_hint [0.099960s] ... ok {3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_rotational [0.068285s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok_2 [0.458192s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_165_ports_get_member [0.267107s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-70d0f990-e658-40f6-bdf5-08b66b001e97 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_104_owner_member_cannot_set_boot_device [0.229673s] ... 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-32cd29e2-19cb-4ef4-87f8-83b28a10e246 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_utils.MatchRootDeviceTestCase.test_match_root_device_hints_rotational_convert_devices_bool [0.090034s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test__append_operator_to_hints [0.065174s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_empty_value [0.087038s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_166_ports_get_reader [0.265525s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7c9a1736-6ffc-44a2-966f-b4761c6a3f7c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_integer [0.063010s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_105_lessee_member_cannot_set_boot_device [0.265832s] ... 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-732c8b38-003c-45ba-83c6-7561a35bb89f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_multiple_values [0.072413s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_multiple_values_space [0.082421s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive [0.433081s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_no_operator [0.073480s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_106_third_party_admin_cannot_set_boot_device [0.227997s] ... 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-65897b9c-bebf-4aed-9e92-efc20951ea47 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_167_ports_post_admin [0.288797s] ... 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-85638bf0-2e39-43ba-9b52-8422fa4ed5c4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 68a552fb-dcd2-43bf-9302-e4c93287be16 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_extract_hint_operator_and_values_single_value [0.067315s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_empty_value [0.072264s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_in [0.047074s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_no_op_no_space [0.027647s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_no_op_space [0.042017s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_107_owner_admin_can_get_boot_device [0.234122s] ... 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-5b2507cf-937c-4e73-ad69-f7d6c20b7c6c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_op_no_space [0.036703s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_168_ports_post_member [0.263027s] ... 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-d6fda8f3-15c1-4d08-9926-8d201da363b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_op_space [0.037288s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_normalize_hint_expression_or [0.049369s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_convert_rotational [0.032127s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_convert_size [0.036746s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_169_ports_post_reader [0.255208s] ... 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-6ed34bde-7261-45ee-aea9-3fbfbd464b89 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_108_owner_manager_can_get_boot_device [0.223497s] ... 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-4bb57ec9-8d6d-43a5-ac61-1a440a037110 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_int_or [0.039349s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_int_or_invalid [0.040094s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_by_path [0.071819s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_hctl [0.052448s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_model [0.050339s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_name [0.055340s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_109_lessee_admin_cannot_get_boot_device [0.263373s] ... 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-9e95f1c8-cdb4-4356-be71-8b4a08b3b2c3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_170_ports_detail_get_admin [0.262030s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2415a4af-91c7-4b73-8f83-9488d1f0c31d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:59:06.398910+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.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_rotational [0.077567s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_serial [0.070548s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_size [0.046895s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test__do_node_deploy_unexpected_prepare_error [1.089964s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_110_owner_member_cannot_get_boot_device [0.237962s] ... 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-34e1e502-daf2-447c-a2d3-c95c26b4958d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_vendor [0.054274s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_171_ports_detail_get_member [0.214450s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-352c0a1d-8b12-49e0-ae9c-7b5cc390a1f7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:59:06.636776+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.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_wwn [0.038956s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_wwn_vendor_extension [0.047246s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_invalid_wwn_with_extension [0.031311s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_no_hints [0.049231s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_non_existent_hint [0.042924s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_111_lessee_member_cannot_get_boot_device [0.228689s] ... 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-406fec90-faac-4034-a679-3c27d3a9da44 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_172_ports_detail_get_reader [0.220085s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5443e36e-a753-4fef-bcd7-b51e07873e91 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:59:06.853324+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.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_string_compare_operator_name [0.045457s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_string_or_space [0.044101s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_do_node_deploy_steps [0.321644s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_with_operators [0.045169s] ... ok {3} ironic.tests.unit.common.test_utils.ParseRootDeviceTestCase.test_parse_root_device_hints_without_operators [0.045181s] ... ok {3} ironic.tests.unit.common.test_vnc.VncTestCase.test_get_console [0.056809s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_node_validation_in_disabled_bios_boot_mode_fails [0.143582s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_112_owner_reader_cannot_get_boot_device [0.235925s] ... 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-f662500f-bb54-4464-a091-489b2dd7da95 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_173_ports_port_id_get_admin [0.221510s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fab53b70-a60b-45c2-bccf-5dd09929060c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:59:07.074766+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.common.test_vnc.VncTestCase.test_novnc_authorize [0.090592s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_node_validation_in_disabled_uefi_boot_mode_fails [0.118704s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_vnc.VncTestCase.test_novnc_unauthorize [0.121559s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_113_lessee_reader_cannot_get_boot_device [0.229206s] ... 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-0bc4d497-70c3-4acc-a3fa-aefb9ccf0f7d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_174_ports_port_id_get_member [0.228937s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-22f4b7ad-42b3-41e9-a920-09c335d667f0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:59:07.293414+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.common.test_vnc.VncTestCase.test_novnc_validate [0.079694s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_lessee_legacy_false [0.244783s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.common.test_vnc.VncTestCase.test_novnc_validate_expired [0.088976s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_175_ports_port_id_get_reader [0.161523s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-feaa24d3-bf1c-48f0-ac01-0418449050da X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:59:07.486185+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.common.test_vnc.VncTestCase.test_token_valid_until [0.053668s] ... ok {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_lessee_legacy_false_even_if_src_set [0.230691s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_176_ports_port_id_patch_admin [0.186480s] ... 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-acb98e5d-6887-4ac9-baf5-4af8ca5f2bd0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive [0.234785s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_lessee_source_instance [0.188595s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_177_ports_port_id_patch_member [0.224276s] ... 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-5b09916e-3110-4a18-9070-9259dbae17fa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_db_conn [0.191537s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_178_ports_port_id_patch_reader [0.160034s] ... 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-3d9a87f3-279f-404e-bd0f-844fa9948137 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_lessee_source_none [0.205912s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_error [0.188427s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACProjectScoped.test_project_scoped_114_third_party_admin_cannot_get_boot_device [0.863574s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/8f6d649b-d6e7-4717-8de7-64643881fe74/management/boot_device WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8512152c-ece5-4c0e-a2d3-680b67f9857c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 8f6d649b-d6e7-4717-8de7-64643881fe74 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_179_ports_port_id_delete_admin [0.182660s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-de9b7f55-e4b9-4ab5-a401-4468356ad8e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_lessee_source_request [0.210306s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_base_manager.MiscTestCase.test__fail_transient_state [0.226213s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_180_ports_port_id_delete_member [0.155578s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7886f004-ead5-46d9-9740-adf7438e1204 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_115_owner_admin_can_get_supported_boot_devices [0.206619s] ... 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-bbdf64a8-da6c-4e8d-9753-e992a5b84635 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_source_path [0.257412s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_116_owner_manager_can_get_supported_boot_devices [0.180035s] ... 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-8f8534b1-6608-4d1d-9220-4d618f4748c3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_181_ports_port_id_delete_reader [0.260850s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-576c4e2e-f88b-4134-b126-8ca08f3962fd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_source_path_none [0.203606s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_117_owner_member_cannot_get_supported_boot_devices [0.154267s] ... 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-cb17e111-32a0-45a8-aaa7-f3e4db34fb33 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_update_fails_on_invalid_boot_mode [0.070153s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_182_nodes_ports_get_admin [0.331243s] ... 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-bce57bc2-e8a3-4150-8830-5c04d980f12c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_118_lessee_admin_cannot_get_supported_boot_devices [0.224609s] ... 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-0ec479e5-1516-4996-9b7c-8058b12f5ce5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_exception_getting_current [0.316362s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_183_nodes_ports_get_member [0.199441s] ... 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-6a3d82bf-59ca-4466-9656-54fe7838d80e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_119_lessee_manager_cannot_get_supported_boot_devices [0.270051s] ... 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-67c37189-3964-4cd1-a49c-3e05b2fc66e4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_base_manager.MiscTestCase.test__fail_transient_state_maintenance [1.013050s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ChangeNodeBootModeTestCase.test_change_node_boot_mode_exception_in_background_task [0.290292s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_120_third_party_admin_cannot_get_supported_boot_devices [0.170975s] ... 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-81c917a1-e63b-484a-ac73-f2b36d1e8371 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_184_nodes_ports_get_reader [0.253622s] ... 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-f74bcb9d-5f1d-41f7-a447-ce5ac046e08c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} {3} ironic.tests.unit.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_hardware_interfaces [0.167811s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACProjectScoped.test_project_scoped_121_owner_admin_can_send_non_masking_interrupt [0.143835s] ... 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-9479af16-651e-4b37-ac99-5e9a9ddd816d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_existing [0.218209s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_185_nodes_ports_detail_get_admin [0.275477s] ... 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-97a4644e-8633-4f16-9599-83a40d7db84b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:59:09.670700+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.conductor.test_base_manager.RegisterInterfacesTestCase.test__register_and_validate_no_valid_default [0.177004s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACProjectScoped.test_project_scoped_122_owner_manager_can_send_non_masking_interrupt [0.179522s] ... 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-07d8d4bf-724e-4d40-88c8-2a66b4135718 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test__do_node_clean_abort_tear_down_fail [0.068698s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ChangeNodeBootModeTestCase.test_change_node_boot_mode_node_already_locked [0.173619s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test__do_node_cleanhold_abort_tear_down_fail [0.050897s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test_do_node_clean_abort_early [0.042135s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test_do_node_clean_abort_with_step [0.069440s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_123_lessee_admin_cannot_send_non_masking_interrupt [0.237596s] ... 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-133c0784-b222-480a-b334-3af4d0cc826d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_186_nodes_ports_detail_get_member [0.288726s] ... 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-f8d1de8c-e802-4b55-9d44-bd2ec4592708 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:59:09.965374+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.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_valid [0.209436s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive [0.054370s] ... ok {3} ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift [0.064188s] ... ok {3} ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_build [0.042437s] ... ok {3} ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout [0.044625s] ... ok {2} ironic.tests.unit.conductor.test_manager.ChangeNodeBootModeTestCase.test_change_node_boot_mode_validate_fail [0.194159s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout_fallback [0.055256s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_124_lessee_manager_cannot_send_non_masking_interrupt [0.235964s] ... 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-20b1a7b0-3e59-4ebb-ad94-e0bef8f05443 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:inject_nmi\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_inspection.TestContinueInspection.test_failure [0.062296s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_187_nodes_ports_detail_get_reader [0.285687s] ... 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-09173f7c-c43a-46a8-bafd-d9f62787309d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2025-05-07T22:59:10.245610+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.conductor.test_inspection.TestContinueInspection.test_ok [0.088110s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ChangeNodeBootModeTestCase.test_change_node_boot_mode_worker_pool_full [0.202335s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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_inspection.TestContinueInspection.test_ok_asynchronous [0.080696s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_125_third_party_admin_cannot_send_non_masking_interrupt [0.239676s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/cff721d4-b6be-4ee6-b3dc-aad955b50734/management/inject_nmi WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-dbaa8523-38b7-41cf-bbcf-8e73d1d4d0c3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node cff721d4-b6be-4ee6-b3dc-aad955b50734 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_ok [0.099808s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_188_portgroups_ports_get_admin [0.278944s] ... 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-84c1c4a6-4ad1-40ee-b3ee-3022d2432d0c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {2} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_exception_getting_current [0.182107s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_raises_error [0.083593s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_inspection.TestInspectHardware.test_inspect_hardware_return_inspect_wait [0.068614s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_126_owner_reader_get_states [0.238311s] ... 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-44349578-96e5-4f75-baa2-63c4d654f297 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"console_enabled": false, "last_error": "meow", "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null} {3} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_return_inspecting [0.088685s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_189_portgroups_ports_get_member [0.241935s] ... 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-fe454c80-5be2-4695-b0e8-c50c77bd8a48 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {3} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_return_other_state [0.128088s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_127_lessee_reader_get_states [0.257106s] ... 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-3474d76e-b188-4544-92cb-146bfe5af8f1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"console_enabled": false, "last_error": "meow", "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null} {3} ironic.tests.unit.conductor.test_inspection.TestInspectHardware.test_inspect_hardware_unexpected_error [0.064846s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.CreateNodeTestCase.test_create_node [0.034673s] ... ok {3} ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node_validation_fails [0.025213s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_190_portgroups_ports_get_reader [0.253528s] ... 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-37eb83f0-6574-407c-8737-7de6367906fc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {3} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_not_support [0.108848s] ... ok 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.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACProjectScoped.test_project_scoped_128_third_part_admin_cannot_get_states [0.272604s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/490e9a94-2a9c-42ce-b24c-cfe4fcf957a7/states WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0015c7c9-f73a-4e0c-b07c-5487fe02a040 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 490e9a94-2a9c-42ce-b24c-cfe4fcf957a7 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_return_failed [0.111588s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_191_portgroups_ports_detail_get_admin [0.260601s] ... 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-64fe031e-937f-4c36-bd49-376cb3b8d921 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_129_owner_admin_can_put_power_state_change [0.248644s] ... 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-301dc247-07a6-4d9c-94b1-321c9fa70d21 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_state_set_by_driver [0.237821s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_192_portgroups_ports_detail_get_member [0.318653s] ... 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-aef8683f-bd33-495c-bda5-dd7797c612a2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {3} ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_succeeded [0.200040s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_exception_in_background_task [1.134451s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_130_owner_manager_can_put_power_state_change [0.280958s] ... 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-e834e96e-bf25-4936-960e-cdd4d7423acd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_existing [0.207084s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_131_lessee_admin_can_put_power_state_change [0.158604s] ... 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-c1faa221-8cb4-4b7d-9333-104fafe67583 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover [0.234851s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_193_portgroups_ports_detail_get_reader [0.319636s] ... 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-4b64a29d-3025-4343-8b74-553dd8562be7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_132_lessee_manager_can_put_power_state_change [0.210613s] ... 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-747bc507-c976-4efa-b8c5-2d59e9fa2535 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_node_already_locked [0.245064s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_194_volume_get_admin [0.285984s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-08d155b4-0959-4638-80dc-a36893c6a685 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_133_owner_member_can_put_power_state_change [0.183724s] ... 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-97db1c37-485a-4c89-90df-58d47426bd93 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_enabled [0.446118s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_valid [0.281118s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_195_volume_get_member [0.233261s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e38eef9b-eefc-4ffe-b4d9-130a97118bd0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]} {3} ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_exception [0.111497s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ManagerPowerRecoveryTestCase.test_node_disappears_on_acquire [0.036244s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_134_lessee_member_can_put_power_state_change [0.243509s] ... 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-b2c91669-edb9-4a57-add6-051d839f8297 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_enroll_on_acquire [0.043230s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_power_transition_on_acquire [0.029421s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_locked_on_acquire [0.025863s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_in_maintenance_on_acquire [0.031644s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_196_volume_get_reader [0.209830s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1efa6c21-ec79-49c8-86c8-a4b70b727dcb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]} {3} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_mapped [0.027827s] ... ok {2} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_validate_fail [0.279439s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ManagerPowerRecoveryTestCase.test_node_recovery_failed [0.044377s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_success [0.028939s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_135_owner_reader_cannot_put_power_state_change [0.234125s] ... 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-2824eb7d-a33d-427d-8bfd-fb21d398e692 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test__sync_power_state_multiple_nodes [0.042975s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_disappears_on_acquire [0.052422s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_197_volume_get_service [0.210399s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1dae29fd-0165-4d43-a168-01c6b832d7b6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]} {3} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_deploywait_on_acquire [0.026652s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_enroll_on_acquire [0.037328s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_maintenance_on_acquire [0.033897s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_power_transition_on_acquire [0.045169s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_136_lessee_reader_cannot_put_power_state_change [0.236202s] ... 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-a115d475-4e76-4d8c-af84-9dc0298cee8a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_power_state\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_worker_pool_full [0.311056s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_198_volume_get_service_project [0.214591s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-70b865c1-c85b-4571-9fca-fc7801af5e7b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]} {3} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_locked_on_acquire [0.093045s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_not_mapped [0.083364s] ... ok {2} ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup [0.163349s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node [0.089002s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_137_third_party_admin_cannot_put_power_state_change [0.254317s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/3d08240e-ed76-4543-826f-a213bda2a9c3/states/power WITH {'target': 'power on'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-091d0978-230a-4a7c-85df-fa4fb9df17a5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 3d08240e-ed76-4543-826f-a213bda2a9c3 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup_node_locked [0.130281s] ... ok {3} ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node_adopt_failed [0.073784s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_199_volume_connectors_get_admin [0.261382s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ab71c7e6-3bc6-403c-bd0f-63fab8d88f0e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "2958e2fa-6ec9-441d-9cc1-4b511648a4d6", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/2958e2fa-6ec9-441d-9cc1-4b511648a4d6", "rel": "self"}, {"href": "http://localhost/volume/connectors/2958e2fa-6ec9-441d-9cc1-4b511648a4d6", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_off [0.110388s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_138_owner_admin_can_put_boot_mode_state_change [0.233607s] ... 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-481f0363-bbb3-4f7b-b9ec-acb0a1c6a501 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_200_volume_connectors_get_member [0.206555s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-15d7d6a1-8a56-4750-88d4-37acbc0ff955 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "022fbc5e-d192-4ea5-8e83-cc10511e931b", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/022fbc5e-d192-4ea5-8e83-cc10511e931b", "rel": "self"}, {"href": "http://localhost/volume/connectors/022fbc5e-d192-4ea5-8e83-cc10511e931b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_on [0.106655s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node [0.100382s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_associated [0.068427s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_139_owner_manager_can_put_boot_mode_state_change [0.225782s] ... 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-436ba61c-1071-468a-8b67-6e43168c45a6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_201_volume_connectors_get_reader [0.226297s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2ff11d7e-8c48-4fec-a71b-57633a9c2710 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "e2a1dc85-3751-42fb-afc3-b125c14410b3", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/e2a1dc85-3751-42fb-afc3-b125c14410b3", "rel": "self"}, {"href": "http://localhost/volume/connectors/e2a1dc85-3751-42fb-afc3-b125c14410b3", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_locked [0.112451s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation [0.119950s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_140_lessee_admin_can_put_boot_mode_state_change [0.246678s] ... 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-ee1e458b-0df1-4a77-a355-73a2da0d6b4b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_forbidden [0.083877s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_in_maintenance [0.130315s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_141_lessee_manager_can_put_boot_mode_state_change [0.226193s] ... 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-88f9af24-ce2e-4bf4-a095-b3b20ca143f8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_fix_broken_interface [0.124890s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_from_invalid_driver [0.119053s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_142_owner_member_can_put_boot_mode_state_change [0.248384s] ... 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-658624ea-077f-42a4-8c21-94e1c9c03c54 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_hardware_type [0.153413s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_field_with_broken_interface [0.100053s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_202_volume_connectors_get_service [0.953033s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-efe34f12-4a39-4d32-818d-52a18801c762 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "8c5ba866-ff18-4d10-8f49-bd988d0cf4fc", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/8c5ba866-ff18-4d10-8f49-bd988d0cf4fc", "rel": "self"}, {"href": "http://localhost/volume/connectors/8c5ba866-ff18-4d10-8f49-bd988d0cf4fc", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_143_lessee_member_can_put_boot_mode_state_change [0.281350s] ... 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-d1636f1a-3663-47ac-b2ab-e3da3eab6caa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_203_volume_connectors_get_service_project [0.169769s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8f46ada0-f89c-4cde-8881-d1bde30ac21d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "8e40ea5e-0949-4d52-9835-e99dd66307a5", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/8e40ea5e-0949-4d52-9835-e99dd66307a5", "rel": "self"}, {"href": "http://localhost/volume/connectors/8e40ea5e-0949-4d52-9835-e99dd66307a5", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_144_owner_reader_cannot_put_boot_mode_state_change [0.212055s] ... 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-cf642ced-d9fd-41a1-bbbb-4e3c4ad4e80b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_204_volume_connectors_get_service_project_disable [0.144591s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-335649fc-cb12-4382-8ac1-0d25f1a1dcc9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": []} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_145_lessee_reader_cannot_put_boot_mode_state_change [0.235332s] ... 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-f2e2878e-8d14-44b5-9d01-65ef16d0066d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_mode\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_205_volume_connectors_post_admin [0.173200s] ... 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/433f8e61-caac-40d4-b0eb-3261ba01d324 Openstack-Request-Id: req-8531ba77-a865-4b29-8dc1-be752f46c035 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "433f8e61-caac-40d4-b0eb-3261ba01d324", "created_at": "2025-05-07T22:59:15.396044+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/433f8e61-caac-40d4-b0eb-3261ba01d324", "rel": "self"}, {"href": "http://localhost/volume/connectors/433f8e61-caac-40d4-b0eb-3261ba01d324", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_206_volume_connectors_post_member [0.184370s] ... 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/31467e23-4f16-4bee-8990-ea729f68f3b3 Openstack-Request-Id: req-79a337f6-bbd5-41ba-af28-0fb7932856bd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "31467e23-4f16-4bee-8990-ea729f68f3b3", "created_at": "2025-05-07T22:59:15.574206+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/31467e23-4f16-4bee-8990-ea729f68f3b3", "rel": "self"}, {"href": "http://localhost/volume/connectors/31467e23-4f16-4bee-8990-ea729f68f3b3", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_146_third_party_admin_cannot_put_boot_mode_state_change [0.252052s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/448c29b5-a223-4e69-aaa7-6a1b236e072c/states/boot_mode WITH {'target': 'uefi'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-aa7ece2e-e3d5-4685-a094-61e2749212a1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 448c29b5-a223-4e69-aaa7-6a1b236e072c could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_207_volume_connectors_post_reader [0.162453s] ... 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-d2a8176e-bbb6-4a66-baf6-9ec9b753fea3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_from_valid_states [2.270640s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either direc tly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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 inhe ritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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() {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_208_volume_connectors_post_service [0.176425s] ... 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/cf1afb51-cefd-4a15-a4bc-c43c05730ea3 Openstack-Request-Id: req-ad3d7684-c934-4659-9aad-d0778b7fc6d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "cf1afb51-cefd-4a15-a4bc-c43c05730ea3", "created_at": "2025-05-07T22:59:15.927922+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/cf1afb51-cefd-4a15-a4bc-c43c05730ea3", "rel": "self"}, {"href": "http://localhost/volume/connectors/cf1afb51-cefd-4a15-a4bc-c43c05730ea3", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_147_owner_admin_can_put_secure_boot_state_change [0.313415s] ... 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-3925fedf-f735-40f7-8840-cb49ca3b220a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_with_console [0.287585s] ... ok 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.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_209_volume_connectors_post_service_project [0.186411s] ... 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/7865a349-2221-43dd-ac8d-dfab59228b7b Openstack-Request-Id: req-64dcc8a8-bb0d-431d-8caa-06354cc4c353 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "7865a349-2221-43dd-ac8d-dfab59228b7b", "created_at": "2025-05-07T22:59:16.113853+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/7865a349-2221-43dd-ac8d-dfab59228b7b", "rel": "self"}, {"href": "http://localhost/volume/connectors/7865a349-2221-43dd-ac8d-dfab59228b7b", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_210_volume_volume_connector_id_get_admin [0.159683s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/0142b151-4fac-4f1c-b41d-55787198ad8c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-964da261-e876-4fa7-a90c-b50f2b92ab91 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "0142b151-4fac-4f1c-b41d-55787198ad8c", "created_at": "2025-05-07T22:59:16.217350+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/0142b151-4fac-4f1c-b41d-55787198ad8c", "rel": "self"}, {"href": "http://localhost/volume/connectors/0142b151-4fac-4f1c-b41d-55787198ad8c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_without_console [0.243451s] ... ok 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.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACProjectScoped.test_project_scoped_148_owner_manager_can_put_secure_boot_state_change [0.353015s] ... 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-71d81b7f-d948-4ca6-a514-b70f8ec2b6a3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_211_volume_volume_connector_id_get_member [0.177811s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/021459c1-5e10-48f1-bc35-734549315f2c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-925ba418-5b24-4388-9969-5800aca01c0e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "021459c1-5e10-48f1-bc35-734549315f2c", "created_at": "2025-05-07T22:59:16.397135+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/021459c1-5e10-48f1-bc35-734549315f2c", "rel": "self"}, {"href": "http://localhost/volume/connectors/021459c1-5e10-48f1-bc35-734549315f2c", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_149_lessee_admin_can_put_secure_boot_state_change [0.246741s] ... 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-54162722-6bb6-4ab5-8474-ac0fbc7c57ce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_212_volume_volume_connector_id_get_reader [0.187195s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/dce4150c-0fae-4856-91f0-31fc841e85fb WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3a44ed15-8281-498b-9827-bef7caa26e7e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "dce4150c-0fae-4856-91f0-31fc841e85fb", "created_at": "2025-05-07T22:59:16.588845+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/dce4150c-0fae-4856-91f0-31fc841e85fb", "rel": "self"}, {"href": "http://localhost/volume/connectors/dce4150c-0fae-4856-91f0-31fc841e85fb", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_with_allocation [0.381891s] ... ok 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.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACProjectScoped.test_project_scoped_150_lessee_manager_can_put_secure_boot_state_change [0.250503s] ... 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-2305fcd4-9cf0-4bac-9bfd-389500e8e7f3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_213_volume_volume_connector_id_patch_admin [0.220007s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/bd41e4ea-086d-4ba6-9b6e-863cd6bd0fc7 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f9975ed6-f1f5-46da-b192-c4173e9fdb2e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_214_volume_volume_connector_id_patch_member [0.208591s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/e1aad4ab-8513-47af-989b-d55a4c2b1bfe WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-e1649b00-251e-488c-9ed4-5610494e26cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_151_owner_member_can_put_secure_boot_state_change [0.319023s] ... 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-d1a2714d-653f-4aa8-b014-f5331167ffbd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_with_source_path [0.480380s] ... ok 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.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_215_volume_volume_connector_id_patch_reader [0.183820s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/a26233ee-ebb9-4c00-b031-af27021a9326 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-df75ae88-32c0-4d08-810a-9565a56f9fc9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_152_lessee_member_can_put_secure_boot_state_change [0.311366s] ... 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-0a62bc26-cd07-4e07-b053-a7dee96123ee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_216_volume_volume_connector_id_patch_service [0.273130s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/4be083fa-fb66-4ae5-993f-d87f43db5792 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f4711ebb-8ece-497d-80d0-bb245b069bfe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_console_raises_error [0.447380s] ... ok 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.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACProjectScoped.test_project_scoped_153_owner_reader_cannot_put_secure_boot_state_change [0.228171s] ... 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-69329f60-69cc-4519-89a5-aae2bb743d81 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_217_volume_volume_connector_id_delete_admin [0.221935s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/dabcda51-586a-4efd-933d-6b5e83192e58 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-95e8c77f-e1b9-4123-96fb-e81ea00c46bb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_driver_raises_error [0.273887s] ... ok 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.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_218_volume_volume_connector_id_delete_member [0.207114s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/110bec47-bb72-4cff-9ef2-f1345e1b2bdf GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-63db1408-fa57-4eee-94aa-82ea674e5222 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_219_volume_volume_connector_id_delete_reader [0.152596s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/307a1238-755b-439e-aeb0-6d648da80479 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1c80ab1b-63ef-44a4-ab6b-a0e49f70c2be X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_allowed_state [3.335496s] ... ok 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.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_invalid_state [0.302535s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_220_volume_volume_connector_id_delete_service [0.167478s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/f9045a37-1a77-48c8-a717-1d523b8b7e44 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-056a42c4-676a-4cd0-8354-506d3a469889 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_protected [0.252700s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_154_lessee_reader_cannot_put_secure_boot_state_change [0.861390s] ... 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-b5468505-4462-40d8-bf1c-871420f7da67 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_221_volume_targets_get_admin [0.240047s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bfe58a11-cf7a-4c8e-b3ca-968722d99bd7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "c46d57b2-1fb6-4539-a054-9d81f799d3fd", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/c46d57b2-1fb6-4539-a054-9d81f799d3fd", "rel": "self"}, {"href": "http://localhost/volume/targets/c46d57b2-1fb6-4539-a054-9d81f799d3fd", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {2} ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_validate_fail [0.199679s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_155_third_party_admin_cannot_put_secure_boot_state_change [0.167148s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/ce77c321-c60f-4da0-86b0-b29cd3f991f0/states/secure_boot WITH {'target': 'true'} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ed7f2711-5e70-43ae-8e79-64b4395950dd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node ce77c321-c60f-4da0-86b0-b29cd3f991f0 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_222_volume_targets_get_member [0.231944s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1061703d-130c-4495-8c52-df16909c3577 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "b2d6536e-0d55-44ea-924e-6e87c8758a5a", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/b2d6536e-0d55-44ea-924e-6e87c8758a5a", "rel": "self"}, {"href": "http://localhost/volume/targets/b2d6536e-0d55-44ea-924e-6e87c8758a5a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_156_owner_admin_can_change_provision_state [0.168408s] ... 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-eff02900-5756-49ee-8a6e-50c322c148a3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_maintenance [0.697977s] ... ok 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.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_worker_pool_full [0.247791s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_223_volume_targets_get_reader [0.215552s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8d4c0bbd-9570-48aa-9c3f-32f708a5f39a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "37d0f27b-83a3-4647-9447-d6788bef031f", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/37d0f27b-83a3-4647-9447-d6788bef031f", "rel": "self"}, {"href": "http://localhost/volume/targets/37d0f27b-83a3-4647-9447-d6788bef031f", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_157_owner_manager_can_change_provision_state [0.205873s] ... 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-18f47120-a365-4320-9676-a88399a3159d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_automated_clean [0.275650s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.UpdateNodeTestCase.test_update_node_interface_in_not_allowed_state [0.295670s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_224_volume_targets_get_service [0.219990s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7de53c7f-b821-4616-8d0b-9cf96c9c7202 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "efa6668a-40cf-4dcf-8c97-fafcdf2b902a", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/efa6668a-40cf-4dcf-8c97-fafcdf2b902a", "rel": "self"}, {"href": "http://localhost/volume/targets/efa6668a-40cf-4dcf-8c97-fafcdf2b902a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_158_owner_member_can_change_provision_state [0.246532s] ... 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-11c278f2-8f91-4262-bb7d-3a5a532fb6c5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_invalid [0.202958s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_225_volume_targets_post_admin [0.221704s] ... 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/1851d5bc-3c1f-4767-b735-2b6f465791ef Openstack-Request-Id: req-22299ae7-2b0b-48d4-910b-996566cd9b55 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1851d5bc-3c1f-4767-b735-2b6f465791ef", "created_at": "2025-05-07T22:59:19.424807+00:00", "updated_at": null, "boot_index": 1, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1851d5bc-3c1f-4767-b735-2b6f465791ef", "rel": "self"}, {"href": "http://localhost/volume/targets/1851d5bc-3c1f-4767-b735-2b6f465791ef", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_clean_step_not_abortable [0.240762s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.UpdateNodeTestCase.test_update_node_invalid_driver [0.092159s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_159_lessee_admin_can_change_provision_state [0.180819s] ... 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-905b32c7-8ca7-471d-9362-ce2088a6bc48 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_maintenance_set_false [0.144690s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_226_volume_targets_post_member [0.246189s] ... 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/2dec0d4e-f9de-4ada-8135-6b09989876b6 Openstack-Request-Id: req-f8e0b89b-be02-4751-9804-10bb397df323 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "2dec0d4e-f9de-4ada-8135-6b09989876b6", "created_at": "2025-05-07T22:59:19.666792+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/2dec0d4e-f9de-4ada-8135-6b09989876b6", "rel": "self"}, {"href": "http://localhost/volume/targets/2dec0d4e-f9de-4ada-8135-6b09989876b6", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_cleanhold_automated_clean [0.231545s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_160_lessee_manager_can_change_provision_state [0.197152s] ... 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-ddca0a45-95b6-4916-a397-7319a5459213 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_maintenance_with_broken_interface [0.138407s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_161_lessee_member_cannot_change_provision_state [0.191395s] ... 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-b95f29c4-40ce-4479-8bdd-003d19f7bea9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_invalid_state [0.117236s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_227_volume_targets_post_service [0.239979s] ... 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/3eb38364-17e2-46d7-a30d-5977972fc217 Openstack-Request-Id: req-24027409-79ce-4aed-83b1-f541ce0e3731 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "3eb38364-17e2-46d7-a30d-5977972fc217", "created_at": "2025-05-07T22:59:19.923235+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/3eb38364-17e2-46d7-a30d-5977972fc217", "rel": "self"}, {"href": "http://localhost/volume/targets/3eb38364-17e2-46d7-a30d-5977972fc217", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_reason_without_protected [0.085942s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_162_third_party_admin_cannot_change_provision_state [0.205531s] ... 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-43e4c1dc-a72a-4815-a4e1-1fecc73b8bb4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_228_volume_targets_post_service_project [0.264812s] ... 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/cea5dd37-728f-40d2-aa36-cdba20520286 Openstack-Request-Id: req-845bbdc2-a1ce-4755-b550-ea9f015e3cb3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "cea5dd37-728f-40d2-aa36-cdba20520286", "created_at": "2025-05-07T22:59:20.189315+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/cea5dd37-728f-40d2-aa36-cdba20520286", "rel": "self"}, {"href": "http://localhost/volume/targets/cea5dd37-728f-40d2-aa36-cdba20520286", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_set [0.217497s] ... ok 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.TestRBACProjectScoped.test_project_scoped_163_service_can_change_provision_state_for_own_nodes [0.346131s] ... 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-17a79adf-3913-4ecb-9863-f878d589fba7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_229_volume_targets_post_service_project_disabled [0.301622s] ... 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-9753d209-2a84-4d64-bb53-62748188a26c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_unset [0.280746s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_invalid_state [0.066708s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_reason_without_retired [0.075786s] ... ok {2} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_cleanhold_manual_clean [1.063810s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_164_service_cannot_change_provision_state [0.319933s] ... 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-6d2f1bde-18e8-4c4b-ab3e-cfc54367b716 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_230_volume_targets_post_service_project_admin [0.318158s] ... 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-0e8227a4-356b-451a-b0bf-b9d5c32cef68 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_set [0.250725s] ... ok 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.TestRBACProjectScoped.test_project_scoped_165_owner_member_can_set_provision_state_clean [0.301256s] ... 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-88798cd4-ff96-4649-9aed-9e0635f16af9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 is locked by host lolcats, please retry after the current operation is completed.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_from_deployhold [0.354132s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_231_volume_targets_post_reader [0.318114s] ... 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-ff689b92-740a-4f6f-b10e-7f333c0b69e8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_unset [0.255198s] ... ok 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_166_owner_reader_cannot_set_provision_state_clean [0.315800s] ... 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-27efdc63-4a54-4e65-aed4-8a3abf60d923 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_232_volume_volume_target_id_get_admin [0.324587s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/34eef38a-72c8-4f86-a790-ca2e915681ff WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7b2d07b3-6acc-4251-a515-76077f38b782 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "34eef38a-72c8-4f86-a790-ca2e915681ff", "created_at": "2025-05-07T22:59:21.335203+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/34eef38a-72c8-4f86-a790-ca2e915681ff", "rel": "self"}, {"href": "http://localhost/volume/targets/34eef38a-72c8-4f86-a790-ca2e915681ff", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_manual_clean [0.363193s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_167_lessee_admin_can_set_provision_state_clean [0.312593s] ... 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-3f1aa7b8-0e8d-4712-80e5-9ad7f0762802 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f is locked by host lolcats, please retry after the current operation is completed.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_with_reset_interfaces [0.564865s] ... ok 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( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_233_volume_volume_target_id_get_member [0.328920s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/b917fe85-8f21-4585-b04d-634aa45b75a8 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f4eee228-1a8b-41ed-bb5f-f28f29f2cff6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b917fe85-8f21-4585-b04d-634aa45b75a8", "created_at": "2025-05-07T22:59:21.655639+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/b917fe85-8f21-4585-b04d-634aa45b75a8", "rel": "self"}, {"href": "http://localhost/volume/targets/b917fe85-8f21-4585-b04d-634aa45b75a8", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_manage [0.371916s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_168_lessee_member_cannot_set_provision_state_clean [0.275549s] ... 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-ad47160d-eeb7-48a3-9496-58f2568420f3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_234_volume_volume_target_id_get_reader [0.297376s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/4f14f9f5-1dbd-4aaa-be5e-5f0aa221b081 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-06f4582d-7b37-491a-b2fc-a8250dd2329b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "4f14f9f5-1dbd-4aaa-be5e-5f0aa221b081", "created_at": "2025-05-07T22:59:21.968423+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/4f14f9f5-1dbd-4aaa-be5e-5f0aa221b081", "rel": "self"}, {"href": "http://localhost/volume/targets/4f14f9f5-1dbd-4aaa-be5e-5f0aa221b081", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide [0.243921s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_169_owner_member_can_set_provision_state_service [0.162841s] ... 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-d148b825-5d90-44ec-9492-0fe6bf2e5c78 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 is locked by host lolcats, please retry after the current operation is completed.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_allowed_state [0.431019s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_235_volume_volume_target_id_get_service [0.224831s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/18561c92-795d-4134-9965-9e4558f25d7d WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-77546c1a-f6f6-4ac3-9b2e-ed4b9b3cf439 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "18561c92-795d-4134-9965-9e4558f25d7d", "created_at": "2025-05-07T22:59:22.205998+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/18561c92-795d-4134-9965-9e4558f25d7d", "rel": "self"}, {"href": "http://localhost/volume/targets/18561c92-795d-4134-9965-9e4558f25d7d", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} {2} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide_in_maintenance [0.228046s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_170_owner_reader_cannot_set_provision_state_service [0.201165s] ... 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-25922729-f3a1-4974-8051-e3225df9fbc4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_171_lessee_admin_can_set_provision_state_service [0.181307s] ... 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-3e728bdd-23f0-488b-ad7e-4743a3b40169 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f is locked by host lolcats, please retry after the current operation is completed.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_236_volume_volume_target_id_patch_admin_extra [0.271156s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/d45b89cc-9872-4277-9b6e-ca7eb712f338 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c6ab3520-f5b4-48d5-9630-7369cf8141ea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provisioning_action_worker_pool_full [0.239967s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_172_lessee_member_cannot_set_provision_state_service [0.207558s] ... 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-ea6b57c4-96e4-4768-995a-c0457bfbfaf4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_invalid_agent_token [0.272088s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_237_volume_volume_target_id_patch_admin [0.329317s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/2241d37c-d5db-4480-8916-bdac3570bba1 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-547ec45d-e55a-4158-88a4-8a348f25123b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_173_owner_admin_can_set_raid_config [0.209909s] ... 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-648e5759-5401-4427-9bec-87e73b92ddc1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_238_volume_volume_target_id_patch_reader [0.186596s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/faa0e5e4-1be2-4e48-b2dc-9e80d1f08573 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ce52bcee-caaf-4ada-bf7b-94a5472a89db X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_no_previous_value [0.999368s] ... ok 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( {2} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_invalid_agent_token_older_version [0.420406s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_239_volume_volume_target_id_patch_service_disabled [0.206662s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/4e2af01b-a9ff-483d-8f6f-21987e3f69c8 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-de4c1f6d-35d3-41e2-a0fa-e0f0f68c9d78 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_174_owner_manager_can_set_raid_config [0.353051s] ... 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-755f5ef7-55bc-4acc-9868-1dbeb72d35f3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_not_allowed [0.339970s] ... ok 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.TestRBACProjectScoped.test_project_scoped_175_lessee_admin_cannot_set_raid_config [0.279989s] ... 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-f8d6d5b3-ef0f-4d73-a3ef-dde4759db2dc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_invalid_newer_version [0.321253s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.UpdateVolumeTargetTestCase.test_update_volume_target [0.195854s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.HeartbeatTestCase.test_heartbeat_tls_required [0.242921s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_176_lessee_manager_cannot_set_raid_config [0.272897s] ... 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-a2f39a67-a6ed-4fdc-80b3-7de722e01de1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_duplicate [0.151943s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.UpdateVolumeTargetTestCase.test_update_volume_target_node_locked [0.135006s] ... ok {3} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_not_found [0.144836s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.HeartbeatTestCase.test_heartbeat_with_agent_token [0.375989s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_177_owner_member_can_set_raid_config [0.345481s] ... 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-939af4b6-6dd7-4e66-ac72-064dfe21829f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_power_on [0.132245s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.UpdateVolumeTargetTestCase.test_update_volume_target_not_found [0.210836s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_240_volume_volume_target_id_patch_service [1.228828s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/4e360ee4-cc2f-484b-acca-a68d8a763201 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-0be115a9-c222-4b97-9604-96ea44059c45 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_with_agent_verify_ca [0.383824s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_178_service_owner_can_set_raid_config [0.427240s] ... 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-0ba17971-1aa8-4f97-9ed0-2010ec82338f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_uuid [0.185334s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_179_lessee_member_cannot_set_raid_config [0.114858s] ... 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-182cd2ac-d443-4beb-b27f-27e0f8169c45 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_241_volume_volume_target_id_delete_admin [0.323277s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/acd1c758-2642-4a91-85fa-540fb4b9bec4 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1a06dd6d-ca33-469d-9724-9894a37c2b38 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_volume_type [0.164094s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.098754s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_180_third_party_admin_cannot_set_raid_config [0.210413s] ... 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-8ebd70bf-b90a-44d8-8134-771430eff43f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_with_agent_version [0.392422s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_242_volume_volume_target_id_delete_member [0.187382s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/b01027e8-2225-4f83-8eab-1083edc4351c GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-91f2f744-2cd0-4dd9-8473-9737dd380c07 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_notify_exc [0.092494s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_181_service_cannot_set_raid_config [0.184527s] ... 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-68871ab0-32ec-4100-b0ca-65be4acdb6d1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_payload_exc [0.117051s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_243_volume_volume_target_id_delete_reader [0.204147s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/18e2d7b3-a547-491f-98c3-dae4313a579c GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1d495c0b-76dd-4e76-9f7f-b31d281aaa27 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification [0.083403s] ... ok {2} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_with_no_required_agent_token [0.309572s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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_notification_utils.TestNotificationUtils.test_emit_console_notification_error_status [0.105555s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_182_owner_admin_can_get_console [0.272487s] ... 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-be769991-6976-4bdd-af8f-901f4de32a09 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_set_notification [0.084029s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_244_volume_volume_target_id_delete_service [0.293101s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/73272448-65aa-4473-ad4c-46a0ee4578e9 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-873fbbb0-3b14-4b87-8d89-992deb80dd79 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_state_corrected_notification [0.098776s] ... ok {2} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_with_required_agent_token [0.270581s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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_steps.NodeServiceStepsTestCase.test__get_service_steps [0.146348s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_183_owner_manager_can_get_console [0.265131s] ... 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-1884c7c6-6773-4bc8-8674-89ea35056bae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_245_nodes_volume_get_admin [0.231267s] ... 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-1ee00caf-9924-476c-a186-de5c7b6c990b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]} {3} ironic.tests.unit.conductor.test_steps.NodeServiceStepsTestCase.test_set_node_service_steps [0.204190s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.HeartbeatTestCase.test_heartbeat_without_agent_version_anaconda [0.358749s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_184_owner_service_can_get_console [0.224656s] ... 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-d8265bde-6fba-421b-90c4-185fe2691a3e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_246_nodes_volume_get_member [0.199859s] ... 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-b0bb01d0-5732-4ce8-9ccd-49bef38ddc15 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]} {3} ironic.tests.unit.conductor.test_steps.ReservedStepHandlerByNameTestCase.test_reserved_step_wait [0.225301s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_185_lessee_admin_cannot_get_console [0.275474s] ... 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-36648df0-c6af-4077-8d4b-39fde0653b96 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_247_nodes_volume_get_reader [0.254957s] ... 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-3a21ada3-6c3a-49e6-b1e2-d1430259dcd8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]} {2} ironic.tests.unit.conductor.test_manager.HeartbeatTestCase.test_heartbeat_without_version [0.308449s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_186_lessee_manager_cannot_get_console [0.180385s] ... 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-796e0044-0e70-48dd-9d82-caad8043db8f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes [0.170424s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_248_nodes_volume_connectors_get_admin [0.195933s] ... 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-0556f913-6bd2-466b-9fd6-a31f868a7d59 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "220dbfdd-1913-497b-9b5d-9467bdca255e", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/220dbfdd-1913-497b-9b5d-9467bdca255e", "rel": "self"}, {"href": "http://localhost/volume/connectors/220dbfdd-1913-497b-9b5d-9467bdca255e", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.conductor.test_steps.ReservedStepHandlerByNameTestCase.test_reserved_step_wait_time [0.246431s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_alive [0.139131s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACProjectScoped.test_project_scoped_187_owner_member_can_get_console [0.274903s] ... 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-ce755593-a751-4883-bfe6-944112919ebf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_steps.ReservedStepHandlerByNameTestCase.test_reserved_step_wait_time_to_long [0.283672s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_249_nodes_volume_connectors_get_member [0.309794s] ... 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-ec6dbe9b-7591-4a96-a523-5d2d51970a99 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "de0765d4-aa9d-4223-bcc8-60d616139298", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/de0765d4-aa9d-4223-bcc8-60d616139298", "rel": "self"}, {"href": "http://localhost/volume/connectors/de0765d4-aa9d-4223-bcc8-60d616139298", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_template [0.156098s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_188_lessee_member_cannot_get_console [0.234327s] ... 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-24433a20-51f7-4cda-8378-51c6e782bb8a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_cleaning [0.430074s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_250_nodes_volume_connectors_get_reader [0.255094s] ... 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-714627e3-1cb1-47f2-8637-9560c76d2244 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "1401f6f1-99a2-4fc9-b5d9-a9129ba7c4e7", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1401f6f1-99a2-4fc9-b5d9-a9129ba7c4e7", "rel": "self"}, {"href": "http://localhost/volume/connectors/1401f6f1-99a2-4fc9-b5d9-a9129ba7c4e7", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_usersteps [0.143212s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_189_owner_reader_cannot_get_console [0.233776s] ... 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-86c79d53-4bdf-4de5-b800-d7151579051d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_ok [0.142110s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_251_nodes_volume_targets_get_admin [0.273388s] ... 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-901584c1-b486-4abc-b8b4-b677a1b3f52e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "9c7cd447-b06f-4b78-a920-44f672488202", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/9c7cd447-b06f-4b78-a920-44f672488202", "rel": "self"}, {"href": "http://localhost/volume/targets/9c7cd447-b06f-4b78-a920-44f672488202", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {2} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_maintenance [0.311476s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {3} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_skip_missing [0.123007s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ErrorHandlersTestCase.test_abort_on_conductor_take_over_cleaning [0.102484s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_190_lessee_reader_cannot_get_console [0.260430s] ... 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-1a0b5de1-dc8d-4e55-83eb-5515af034c18 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_abort_on_conductor_take_over_deploying [0.091345s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_252_nodes_volume_targets_get_member [0.270244s] ... 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-9b03da63-9046-4111-8d0a-c6fd3c956bdf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "c2aa1d8d-3b7c-4a02-aa10-3f7a1bf7a648", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/c2aa1d8d-3b7c-4a02-aa10-3f7a1bf7a648", "rel": "self"}, {"href": "http://localhost/volume/targets/c2aa1d8d-3b7c-4a02-aa10-3f7a1bf7a648", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {2} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_exceptions_skipping [0.334931s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler [0.133638s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_191_third_party_admin_cannot_get_console [0.267551s] ... 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-0207b0ab-2144-46fd-8a7c-156796526a94 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanfail [0.107477s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_253_nodes_volume_targets_get_reader [0.265812s] ... 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-710ba7a9-eaf6-40e0-8ef1-23c083d70bf4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "6a239502-6f6d-41f9-8053-ad95bede27b0", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/6a239502-6f6d-41f9-8053-ad95bede27b0", "rel": "self"}, {"href": "http://localhost/volume/targets/6a239502-6f6d-41f9-8053-ad95bede27b0", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanwait [0.097333s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_manual [0.078371s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_192_owner_admin_can_set_console [0.246368s] ... 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-fd3c0463-5789-4a75-8404-546dc915dc3d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_fail [0.092218s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_254_drivers_get_admin [0.236403s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5355d9c5-7d61-4336-8cf8-712bd74bd28c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"drivers": []} {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_teardown [0.088720s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_tear_down_error [0.105898s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_255_drivers_get_member [0.230598s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d79a54c8-1323-466b-b8b4-b5c9cc94e2fa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"drivers": []} {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout [0.088167s] ... ok {2} ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_node_not_locked [0.802134s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout_handler_call [0.098372s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_256_drivers_get_reader [0.232061s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1d9541f1-79ae-497f-a9bb-85e434b5ad29 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"drivers": []} {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout [0.118045s] ... ok {2} ironic.tests.unit.conductor.test_manager.MiscTestCase.test__mapped_to_this_conductor [0.169089s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_known_exc [0.118963s] ... ok {2} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_get_node_with_token [0.113414s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_257_drivers_driver_name_get_admin [0.191493s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-244429dd-3db6-4554-a5a9-361ff1943ce0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_unknown_exc [0.130409s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_193_owner_manager_can_set_console [0.908932s] ... 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-24cf4674-d238-42c3-b873-df8d027c6436 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes [0.191976s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_servicewait_timeout [0.098601s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_258_drivers_driver_name_get_member [0.236798s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-203c66bb-466a-404e-af8f-5dff9ae262e3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_servicewait_timeout_handler_call [0.089446s] ... ok {2} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes_shutdown [0.169447s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACProjectScoped.test_project_scoped_194_lessee_admin_cannot_set_console [0.248251s] ... 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-846f716b-f3e7-4764-a884-e4d22b51e93c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_259_drivers_driver_name_get_reader [0.208253s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-75411809-f4f0-4f2b-8bf9-d51866d9454c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_node_with_token_already_locked [0.095406s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_no_worker [0.154922s] ... ok {2} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_node_with_token_already_set [0.087358s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_other_error [0.105799s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_195_lessee_manager_cannot_set_console [0.194231s] ... 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-6ec92644-bdd3-4419-a570-8c04884f4bef X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_260_drivers_properties_get_admin [0.191589s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8350fe05-52fc-4159-ba72-27189e19de4d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail [0.115477s] ... ok {2} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_deploy_templates [0.073994s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_no_worker [0.160944s] ... ok {2} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_instance_traits [0.071058s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_196_owner_member_can_set_console [0.233365s] ... 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-26f91b87-0994-4653-8147-741760b54876 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_other_error [0.116441s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_261_drivers_properties_get_member [0.221530s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bd82141a-a517-432c-aa6e-58fd3f4c3cb7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_unexpected [0.092189s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler [0.093786s] ... ok {2} ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_dynamic_driver_interfaces [0.110400s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_bad_state [0.095446s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_262_drivers_properties_get_reader [0.222863s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6d9806fb-27fd-46fc-b3c1-57e228ac69b6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_197_lessee_member_cannot_set_console [0.245440s] ... 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-f1f6ef1d-1e09-4c15-a6bb-08187a47bd5f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_console_state\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi [0.135262s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ErrorHandlersTestCase.test_rescuing_error_handler_ironic_exc [0.097444s] ... ok {2} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_node_locked [0.098198s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_198_owner_service_can_set_console [0.146962s] ... 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-0fe6374c-e398-476d-9c67-d5ac295c7a30 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_other_exc [0.088270s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_263_drivers_raid_logical_disk_properties_get_admin [0.198605s] ... 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-d83c67d5-f0bc-447f-85c5-62bc997330e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_199_service_cannot_set_console [0.082595s] ... 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-4b676d55-1a15-4324-a5f4-f9608e290db7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_not_implemented [0.119140s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ErrorHandlersTestCase.test_rescuing_error_handler_set_failed_state_false [0.103730s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_200_owner_admin_cannot_get_vendor_passthru_methods [0.110047s] ... 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-24d92fac-8399-4ef0-97f5-46c24430dc3d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_264_drivers_raid_logical_disk_properties_get_member [0.163373s] ... 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-62f9abca-5330-46ea-bc14-afff9094f1d0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler [0.110629s] ... ok {2} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_invalid_param [0.132137s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ErrorHandlersTestCase.test_servicing_error_handler_no_fail [0.081505s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_201_owner_manager_cannot_get_vendor_passthru_methods [0.146465s] ... 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-f8546cb4-a1ba-4ecc-8161-e521119e6ae1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_missing_param [0.132031s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_265_drivers_raid_logical_disk_properties_get_reader [0.189399s] ... 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-d3daac32-92fa-46d5-b12c-bbc01f5291ca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_no_teardown [0.092125s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_202_owner_service_cannot_get_vendor_passthru_methods [0.133018s] ... 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-a153fe8a-bac1-4541-b395-87f63602ad96 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_servicefail [0.101181s] ... ok {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_servicewait [0.086237s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_266_drivers_vendor_passthru_methods_get_admin [0.235764s] ... 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-e02a83c6-a355-49c3-a4ec-c02a11eddc68 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_203_owner_member_cannot_get_vendor_passthru_methods [0.156801s] ... 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-a915efe4-8c9e-4ddb-aefa-1a3707440755 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_from_all_nodes_one_pass [0.317415s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_267_drivers_vendor_passthru_methods_get_member [0.106101s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-91efbc87-24d7-48dd-ad70-2be2e341d996 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_servicing_error_handler_tear_down_error [0.102075s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_268_drivers_vendor_passthru_methods_get_reader [0.088716s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/vendor_passthru/methods WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-79fdc911-1d43-4131-9841-d91c0e55caf0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_no_worker [0.126557s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_204_owner_reader_cannot_get_vendor_passthru_methods [0.226223s] ... 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-03f03f10-84cd-4030-b136-dfc832672188 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_other_error [0.109718s] ... ok {2} ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config [0.309732s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_269_drivers_vendor_passthru_get_admin [0.180984s] ... 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-b2a32ca5-f23b-4910-ad94-36fd7ef53ce4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_205_lessee_admin_cannot_get_vendor_passthru_methods [0.167981s] ... 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-12ef3efd-30f3-40ba-b18f-d529d58845e4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_206_lessee_manager_cannot_get_vendor_passthru_methods [0.118382s] ... 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-56f3c7b8-5104-4018-8b1f-b0f3a7386eeb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_270_drivers_vendor_passthru_get_member [0.180789s] ... 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-6938c1bb-effa-449d-8f04-117014e2065b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config_two_pass [0.314267s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACProjectScoped.test_project_scoped_207_lessee_member_cannot_get_vendor_passthru_methods [0.194832s] ... 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-07ebb6e1-0013-40f6-865e-597f99c1d516 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_271_drivers_vendor_passthru_get_reader [0.182203s] ... 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-3c73e7a6-d3e7-4019-8644-564bfa8ad9fc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_no_worker [0.549101s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_272_drivers_vendor_passthru_post_admin [0.160336s] ... 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-0d637779-8ae7-4ca1-8d01-516dbc979d1d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_other_error [0.044762s] ... ok {2} ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_to_config_with_days [0.355318s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACProjectScoped.test_project_scoped_208_lessee_reader_cannot_get_vendor_passthru_methods [0.315593s] ... 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-9eed7a6b-d634-4d33-9eaa-44a41b29a923 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_no_worker [0.213572s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_273_drivers_vendor_passthru_post_member [0.232979s] ... 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-24275234-853d-4cde-b333-a92084be8299 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_other_error [0.138423s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_274_drivers_vendor_passthru_post_reader [0.198371s] ... 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-1a9c2fdf-fdb9-404a-bdf0-f4659b34bed7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_pruning_no_work [0.381748s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACProjectScoped.test_project_scoped_209_owner_admin_cannot_get_vendor_passthru [0.381183s] ... 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-1c64f290-6409-495a-bd82-ba2533f1f8f7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_servicing_error_handler_no_worker [0.159399s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_275_drivers_vendor_passthru_put_admin [0.208266s] ... 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-d9578f82-a299-421b-8433-a4a0e6da9a8f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_servicing_error_handler_other_error [0.155847s] ... ok {2} ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_pruning_not_other_conductor [0.255692s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {3} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_cleaning [0.084636s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_210_owner_manager_cannot_get_vendor_passthru [0.298031s] ... 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-63ca0e77-f6e3-424d-91db-cf65154b4e2a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_276_drivers_vendor_passthru_put_member [0.195774s] ... 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-75441ed0-88e9-44bb-8d6f-eb820b6f2d99 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_inspecting [0.087736s] ... ok {3} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_none [0.075397s] ... ok {2} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties [0.179266s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_277_drivers_vendor_passthru_put_reader [0.160498s] ... 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-7a0cb8d1-1916-4deb-95ce-08b9d8c3cc05 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties_iface_not_supported [0.055822s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_211_owner_service_cannot_get_vendor_passthru [0.228945s] ... 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-7107c14f-f01c-4617-b5a1-c2a836269f33 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_provisioning [0.089555s] ... ok {3} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_rescuing [0.068548s] ... ok {2} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config [0.105522s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_278_drivers_vendor_passthru_delete_admin [0.138237s] ... 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-f684f5b4-5e90-4db5-93cf-7cf8f6a4b536 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_tenant [0.083076s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_212_owner_member_cannot_get_vendor_passthru [0.224393s] ... 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-38b02449-4d0d-479b-bb2a-f64fef0fc713 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_empty [0.118968s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_279_drivers_vendor_passthru_delete_member [0.139037s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/drivers/fake-driverz/vendor_passthru?method=test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-99149fb0-a127-4967-9bb6-2c59058985ee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_adopting [0.129803s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_280_drivers_vendor_passthru_delete_reader [0.139740s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/drivers/fake-driverz/vendor_passthru?method=test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-436283b0-16bc-4f9d-832f-391e702cc356 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_always [0.111266s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_213_owner_reader_cannot_get_vendor_passthru [0.231859s] ... 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-e9767ce8-43e4-4ae4-91ac-a26e15f854fe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_default [0.134877s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_214_lessee_admin_cannot_get_vendor_passthru [0.241524s] ... 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-e56341c0-df0d-41c8-9aad-e566e5acf590 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_force_never [0.132427s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.RaidHardwareTypeTestCases.test_set_target_raid_config_iface_not_supported [0.601570s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeSetBootDeviceTestCase.test_node_set_boot_device_non_existent_device [0.161585s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.RaidHardwareTypeTestCases.test_set_target_raid_config_invalid_parameter_value [0.148343s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_215_lessee_manager_cannot_get_vendor_passthru [0.297969s] ... 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-e042ff34-be8d-4d95-b2ab-17b5b72bb7c7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_valid [0.176885s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestIndirectionApiConductor.test_object_action [0.065293s] ... ok {2} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_copies_object [0.036924s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_281_nodes_bios_get_admin [0.715719s] ... 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-a1b5f2bd-1d52-4ab7-ba47-52de2b9f1202 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"bios": [{"created_at": "2025-05-07T22:59:33.156328+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.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_adopting [0.120919s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestIndirectionApiConductor.test_object_action_on_object [0.067600s] ... ok {2} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_raise [0.049844s] ... ok {2} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_backport_versions [0.045623s] ... ok {3} ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_non_existent_mode [0.102016s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_216_lessee_member_cannot_get_vendor_passthru [0.258687s] ... 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-1b3e3cc4-6c3c-434e-b837-28d150d3da86 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_282_nodes_bios_get_member [0.160497s] ... 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-efd49718-5166-4bdc-be53-1a867f2100ff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"bios": [{"created_at": "2025-05-07T22:59:33.856494+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"}]}]} {2} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action [0.051832s] ... ok {3} ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_valid [0.090334s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestIndirectionApiConductor.test_object_class_action_on_object [0.047161s] ... ok {2} ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_raise [0.051709s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_283_nodes_bios_get_reader [0.166349s] ... 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-170c5795-43d8-4461-946c-136fab3ede65 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"bios": [{"created_at": "2025-05-07T22:59:34.015703+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.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot [0.138436s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_217_lessee_reader_cannot_get_vendor_passthru [0.233139s] ... 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-0d5056d5-18df-457c-bf40-8b5599a2c677 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port [0.111193s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_284_nodes_bios_bios_setting_get_admin [0.166981s] ... 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-3026fcd3-988e-491f-b5a1-ef352b41f899 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"FAKE_SETTING": {"created_at": "2025-05-07T22:59:34.186654+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.conductor.test_manager.UpdatePortTestCase.test_update_port_address_active_node [0.117697s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.167290s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_218_owner_admin_cannot_post_vendor_passthru [0.230574s] ... 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-c536c78c-48a2-46d1-bf66-501bf40977c9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off [0.126199s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.UpdatePortTestCase.test_update_port_address_maintenance [0.146728s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_285_nodes_bios_bios_setting_get_member [0.211788s] ... 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-d3f91996-2b53-4a40-a370-52938c61749b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"FAKE_SETTING": {"created_at": "2025-05-07T22:59:34.363070+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.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_storage_detach [0.137605s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.UpdatePortTestCase.test_update_port_node_active_state_and_maintenance [0.159932s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_219_owner_manager_cannot_post_vendor_passthru [0.294221s] ... 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-53eff161-77a7-42ed-aec8-f1778313a3f1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_timeout [0.112004s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_286_nodes_bios_bios_setting_get_reader [0.210317s] ... 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-f515302d-c5d2-42aa-9986-98fa1bd5308e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"FAKE_SETTING": {"created_at": "2025-05-07T22:59:34.621790+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.conductor.test_manager.UpdatePortTestCase.test_update_port_node_deleting_state [0.102929s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_1 [0.119178s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.UpdatePortTestCase.test_update_port_node_locked [0.075937s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_287_conductors_get_admin [0.157331s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-17460893-7220-4447-af99-de922103e289 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": [{"hostname": "test-conductor-node", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}]} {2} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_manageable_state [0.112575s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_2 [0.179932s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_220_owner_service_cannot_post_vendor_passthru [0.321690s] ... 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-bb1424a6-106d-4787-8382-7516acf26031 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_288_conductors_get_member [0.144676s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e28953ee-3f61-4a80-8eb2-fd9665bb0f71 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": [{"hostname": "test-conductor-node", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}]} {2} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_maintenance [0.105240s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_1 [0.141934s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_289_conductors_get_reader [0.146474s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1b3cbc0e-3878-445b-9220-05d5fb27cc7d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"conductors": [{"hostname": "test-conductor-node", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}]} {2} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_node_deleting_state [0.113104s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_221_owner_member_cannot_post_vendor_passthru [0.235243s] ... 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-34c2a83b-0fcd-4f6f-9c4a-2bf59c98f2c6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_conflict [0.110850s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_2 [0.196731s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_290_conductors_hostname_get_admin [0.183204s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5286bd9f-5926-47fd-ab4a-df2be2536c67 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2025-05-07T22:59:35.242097+00:00", "updated_at": "2025-05-07T22:59:35.246790+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.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_inconsistent [0.112697s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_1 [0.137356s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_291_conductors_hostname_get_member [0.146640s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a8bb630e-88b8-4852-80a4-1cff81861d6b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2025-05-07T22:59:35.407426+00:00", "updated_at": "2025-05-07T22:59:35.407996+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.TestRBACProjectScoped.test_project_scoped_222_owner_reader_cannot_post_vendor_passthru [0.253753s] ... 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-d05c358b-689e-4aa8-bcd1-a12a800daf30 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_port_changed_failure [0.119967s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_2 [0.147747s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_292_conductors_hostname_get_reader [0.171027s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dbd3faf3-5000-4106-bb8b-5983f8e356d4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"created_at": "2025-05-07T22:59:35.572930+00:00", "updated_at": "2025-05-07T22:59:35.573669+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.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_active_node [0.135931s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_223_lessee_admin_cannot_post_vendor_passthru [0.223863s] ... 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-38bce5c7-9ba9-4110-8590-af5b253a7585 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_1 [0.125775s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_293_allocations_post_admin [0.160393s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-06a80856-e8a9-4f1f-8fab-07b5cedcd360 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_enroll_node [0.148052s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_2 [0.122730s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_224_lessee_manager_cannot_post_vendor_passthru [0.248774s] ... 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-e5f98f22-d846-4687-aac9-fed1ed265170 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_to_node_in_inspect_wait_state [0.141721s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_294_allocations_post_member [0.186821s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-14775bcb-e7c7-4529-bcbb-1553c3a5207d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_3 [0.169044s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_295_allocations_post_reader [0.134994s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-95a9fc7f-58c6-47b7-a791-8a5de5273452 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup [0.206420s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_225_lessee_member_cannot_post_vendor_passthru [0.230622s] ... 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-1a1339be-5ead-48ba-aa54-37ebffe464d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_1 [0.166766s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_296_allocations_get_admin [0.091931s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4745fe51-a205-47da-80c1-dd0c9df293da X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "342cb082-3056-4ea6-92d6-0a440530b6c9", "created_at": "2025-05-07T22:59:36.157284+00:00", "updated_at": "2025-05-07T22:59:36.161400+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/342cb082-3056-4ea6-92d6-0a440530b6c9", "rel": "self"}, {"href": "http://localhost/allocations/342cb082-3056-4ea6-92d6-0a440530b6c9", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_297_allocations_get_member [0.110684s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-53a4cc62-0494-46ad-a9dc-024458e2d2a9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "0761c621-e8bb-4ddc-9bdb-2284a2a89a0d", "created_at": "2025-05-07T22:59:36.269756+00:00", "updated_at": "2025-05-07T22:59:36.277399+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/0761c621-e8bb-4ddc-9bdb-2284a2a89a0d", "rel": "self"}, {"href": "http://localhost/allocations/0761c621-e8bb-4ddc-9bdb-2284a2a89a0d", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_2 [0.186530s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_226_lessee_reader_cannot_post_vendor_passthru [0.214697s] ... 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-a5ef19c7-87a0-4019-9732-c04fb0fef5be X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_298_allocations_get_reader [0.095446s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ce584998-bca4-46a2-af44-99c17039669f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "78af53c4-1c7e-4828-a300-17ce47df1d21", "created_at": "2025-05-07T22:59:36.386394+00:00", "updated_at": "2025-05-07T22:59:36.390786+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/78af53c4-1c7e-4828-a300-17ce47df1d21", "rel": "self"}, {"href": "http://localhost/allocations/78af53c4-1c7e-4828-a300-17ce47df1d21", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_299_allocations_allocation_id_get_admin [0.069918s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/433afa01-ddb0-45c7-ab87-25a96cafa814 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e6186946-0c2f-44b1-8f80-5a092a68b161 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "433afa01-ddb0-45c7-ab87-25a96cafa814", "created_at": "2025-05-07T22:59:36.462762+00:00", "updated_at": "2025-05-07T22:59:36.467404+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/433afa01-ddb0-45c7-ab87-25a96cafa814", "rel": "self"}, {"href": "http://localhost/allocations/433afa01-ddb0-45c7-ab87-25a96cafa814", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {2} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_association_with_ports [0.335684s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_3 [0.189067s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_300_allocations_allocation_id_get_member [0.093442s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/9e3418cb-0ceb-4552-83ed-3a089b9aaf7e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fcacf1dc-65dc-4960-9fec-ed2c1cbf9166 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "9e3418cb-0ceb-4552-83ed-3a089b9aaf7e", "created_at": "2025-05-07T22:59:36.542081+00:00", "updated_at": "2025-05-07T22:59:36.546938+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/9e3418cb-0ceb-4552-83ed-3a089b9aaf7e", "rel": "self"}, {"href": "http://localhost/allocations/9e3418cb-0ceb-4552-83ed-3a089b9aaf7e", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_227_owner_admin_cannot_put_vendor_passthru [0.247077s] ... 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-ff9ebacd-2569-4642-a150-01ababbd81ed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_failure [0.136728s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_301_allocations_allocation_id_get_reader [0.096536s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/43a12c89-f876-4917-9ddc-50321cd0ff01 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8ebd7a3d-9bc5-41e3-aa98-e4dadca7d8ff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "43a12c89-f876-4917-9ddc-50321cd0ff01", "created_at": "2025-05-07T22:59:36.624065+00:00", "updated_at": "2025-05-07T22:59:36.628458+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/43a12c89-f876-4917-9ddc-50321cd0ff01", "rel": "self"}, {"href": "http://localhost/allocations/43a12c89-f876-4917-9ddc-50321cd0ff01", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_1 [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.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_node_locked [0.082421s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_302_allocations_allocation_id_patch_admin [0.126042s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/43c5d08f-56a7-4662-b18d-6d854aeda303 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-14831722-2dd8-44ac-a30c-ebcc0fd9ae00 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "43c5d08f-56a7-4662-b18d-6d854aeda303", "created_at": "2025-05-07T22:59:36.747046+00:00", "updated_at": "2025-05-07T22:59:36.809363+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/43c5d08f-56a7-4662-b18d-6d854aeda303", "rel": "self"}, {"href": "http://localhost/allocations/43c5d08f-56a7-4662-b18d-6d854aeda303", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_2 [0.143068s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_228_owner_manager_cannot_put_vendor_passthru [0.236063s] ... 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-cc4a9823-a574-4492-991c-0678b46e63a5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_303_allocations_allocation_id_patch_member [0.094417s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/21b89732-edfe-4280-bef7-9142cbb00f70 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4cb64f41-9239-4c37-ac47-2af23843fb36 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "21b89732-edfe-4280-bef7-9142cbb00f70", "created_at": "2025-05-07T22:59:36.851229+00:00", "updated_at": "2025-05-07T22:59:36.902814+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/21b89732-edfe-4280-bef7-9142cbb00f70", "rel": "self"}, {"href": "http://localhost/allocations/21b89732-edfe-4280-bef7-9142cbb00f70", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {2} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_active_state_and_maintenance [0.235312s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_3 [0.135606s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_304_allocations_allocation_id_patch_reader [0.105012s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/a91a127c-d2e4-4b26-8f36-0335798219cb WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-abd2e1b7-9e22-41d7-a90e-ad5e43c51d38 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:update\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_deleting_state [0.101917s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_1 [0.106817s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_229_owner_service_cannot_put_vendor_passthru [0.243223s] ... 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-0ab9ca9e-b357-4011-a894-4a21898cd996 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_305_allocations_allocation_id_delete_admin [0.183320s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/44f320f6-a2fe-4739-906b-0fe219ada57b GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-fae85f6a-b7fa-4a1c-a7d7-57658dd85399 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_2 [0.156031s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_inspect_wait_state [0.260110s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_230_owner_member_cannot_put_vendor_passthru [0.260587s] ... 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-1f02b83d-4b76-437f-86a2-e3dee555b914 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_306_allocations_allocation_id_delete_member [0.188480s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/1ce00c2d-6525-470d-939c-64a5b291d453 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-cadd38fb-5f0c-4784-ab4e-2a4e5a461a2b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_1 [0.151948s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_307_allocations_allocation_id_delete_reader [0.145702s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/b59391d5-213b-49e9-8e42-d094edcfc52f GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-43eca957-4343-4ea8-856d-f98216df62aa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_2 [0.207686s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_manageable_state [0.307963s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_231_owner_reader_cannot_put_vendor_passthru [0.269891s] ... 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-ae0ddddd-1c0d-4a7e-83c3-a9abd137aed9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_3 [0.130467s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.VendorPassthruTestCase.test_driver_vendor_passthru_async [0.112173s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_308_nodes_allocation_get_admin [0.247487s] ... 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-3709af1b-64a4-4b13-b9a1-8a839f3f1912 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "7d047882-a2db-4f15-bcf3-3be1dbca79a5", "created_at": "2025-05-07T22:59:37.628966+00:00", "updated_at": "2025-05-07T22:59:37.652513+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/7d047882-a2db-4f15-bcf3-3be1dbca79a5", "rel": "self"}, {"href": "http://localhost/allocations/7d047882-a2db-4f15-bcf3-3be1dbca79a5", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_232_lessee_admin_cannot_put_vendor_passthru [0.186196s] ... 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-59e5d67f-282c-46d5-94a5-72d38e5b1888 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_1 [0.154004s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.VendorPassthruTestCase.test_driver_vendor_passthru_driver_not_found [0.163948s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACProjectScoped.test_project_scoped_233_lessee_manager_cannot_put_vendor_passthru [0.171959s] ... 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-4e6a70d1-2975-4fe4-8150-08a52f3393e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_309_nodes_allocation_get_member [0.230828s] ... 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-7062d719-f6d6-4620-b8e4-ea0bf94739a1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e2dabd74-71a5-4ef1-9c83-4d0f013b11bc", "created_at": "2025-05-07T22:59:37.888345+00:00", "updated_at": "2025-05-07T22:59:37.900082+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/e2dabd74-71a5-4ef1-9c83-4d0f013b11bc", "rel": "self"}, {"href": "http://localhost/allocations/e2dabd74-71a5-4ef1-9c83-4d0f013b11bc", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_2 [0.166987s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.VendorPassthruTestCase.test_driver_vendor_passthru_http_method_not_supported [0.168852s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACProjectScoped.test_project_scoped_234_lessee_member_cannot_put_vendor_passthru [0.161553s] ... 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-64cbf545-4544-4fd2-a5e0-14095fcf7b24 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_310_nodes_allocation_get_reader [0.171870s] ... 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-6ba24675-8162-4ed6-8c10-ef7640070f2e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "53296644-43b4-45c2-b1c7-4c83f425a46a", "created_at": "2025-05-07T22:59:38.096786+00:00", "updated_at": "2025-05-07T22:59:38.105671+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/53296644-43b4-45c2-b1c7-4c83f425a46a", "rel": "self"}, {"href": "http://localhost/allocations/53296644-43b4-45c2-b1c7-4c83f425a46a", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_1 [0.187547s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.VendorPassthruTestCase.test_driver_vendor_passthru_method_not_supported [0.170834s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACProjectScoped.test_project_scoped_235_lessee_reader_cannot_put_vendor_passthru [0.151010s] ... 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-c550e28f-2e2c-4d00-89e6-64627c69a19a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_311_nodes_allocation_delete_admin [0.180754s] ... 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-015b6b88-5bf2-4aa6-8659-57e95d2585c0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_2 [0.191629s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.VendorPassthruTestCase.test_driver_vendor_passthru_no_default_interface [0.195988s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACProjectScoped.test_project_scoped_236_owner_admin_cannot_delete_vendor_passthru [0.172920s] ... 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-fd050a52-6c6c-45a0-9159-013b727adf23 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_312_nodes_allocation_delete_member [0.190255s] ... 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-f0e37960-8956-431a-a7c0-9473711d5c22 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_sync [0.189746s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets [0.210746s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_237_owner_manager_cannot_delete_vendor_passthru [0.157255s] ... 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-00013691-97b5-4478-b75a-8190a76527b2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_313_nodes_allocation_delete_reader [0.186991s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3b0e76c1-fd66-4345-92ea-34467056339f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_validation_failed [0.181340s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACProjectScoped.test_project_scoped_238_owner_service_cannot_delete_vendor_passthru [0.175752s] ... 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-03a7219e-eb83-460f-a490-5fb9846f245d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets_fix [0.212350s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_314_deploy_templates_post_admin [0.174174s] ... 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/9b80fed9-a0b0-4f99-924b-d670296e4dc4 Openstack-Request-Id: req-d965e6d8-49dd-4b34-8658-22abe8739804 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "9b80fed9-a0b0-4f99-924b-d670296e4dc4", "created_at": "2025-05-07T22:59:38.954105+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/9b80fed9-a0b0-4f99-924b-d670296e4dc4", "rel": "self"}, {"href": "http://localhost/deploy_templates/9b80fed9-a0b0-4f99-924b-d670296e4dc4", "rel": "bookmark"}], "steps": [{"interface": "deploy", "step": "noop", "args": {}, "priority": 0}]} {2} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods [0.157645s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACProjectScoped.test_project_scoped_239_owner_member_cannot_delete_vendor_passthru [0.161128s] ... 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-81d01077-a488-4986-a75a-398b2bb6344b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods_no_default_interface [0.117785s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_315_deploy_templates_post_member [0.252982s] ... 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-b05b3a7b-616a-48a2-ac0b-4b28c52ead45 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_node_vendor_passthru_methods [0.193727s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_create [0.581370s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_316_deploy_templates_post_reader [0.229900s] ... 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-c1c8d166-08da-4c43-9f00-6e9e90a0d4da X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_async [0.214783s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {3} ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_update [0.094280s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_240_owner_reader_cannot_delete_vendor_passthru [0.585262s] ... 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-985887b0-fac7-411b-9a18-9c575f83c693 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {3} ironic.tests.unit.conf.test_auth.AuthConfTestCase.test_add_auth_opts [0.050934s] ... ok {3} ironic.tests.unit.console.rfb.test_authnone.RFBAuthSchemeNoneTestCase.test_handshake [0.041559s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_317_deploy_templates_get_admin [0.215935s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1ace2194-2fcc-4a9d-b72a-d2ef64d7642b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "5cca1199-9032-48a2-8f4d-72ed0264dbe9", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/5cca1199-9032-48a2-8f4d-72ed0264dbe9", "rel": "self"}, {"href": "http://localhost/deploy_templates/5cca1199-9032-48a2-8f4d-72ed0264dbe9", "rel": "bookmark"}]}]} {2} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_http_method_not_supported [0.173322s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.console.rfb.test_authnone.RFBAuthSchemeNoneTestCase.test_types [0.051089s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_241_lessee_admin_cannot_delete_vendor_passthru [0.186978s] ... 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-d11276a7-f025-4ab7-987b-77b0ee6f16a1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_missing_method_parameters [0.220215s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_318_deploy_templates_get_member [0.273116s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3570c441-3d23-47d2-bcec-3b9b1bb3d41a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "6cc24386-435f-40a5-99a3-4245f9694d51", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/6cc24386-435f-40a5-99a3-4245f9694d51", "rel": "self"}, {"href": "http://localhost/deploy_templates/6cc24386-435f-40a5-99a3-4245f9694d51", "rel": "bookmark"}]}]} {3} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicWebsocketSecurityProxyTestCase.test_proxy_connect_err [0.245503s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_242_lessee_manager_cannot_delete_vendor_passthru [0.200893s] ... 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-97d48b35-aaff-4e43-bec1-4ffb74b7b1f4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_node_already_locked [0.213974s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.console.securityproxy.test_websocketproxy.IronicWebsocketSecurityProxyTestCase.test_proxy_connect_ok [0.200109s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_319_deploy_templates_get_reader [0.220602s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-337fff1a-b94d-4254-8c18-23f2f2624f65 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"deploy_templates": [{"uuid": "9462a745-5a26-450b-a14e-2172461221da", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/9462a745-5a26-450b-a14e-2172461221da", "rel": "self"}, {"href": "http://localhost/deploy_templates/9462a745-5a26-450b-a14e-2172461221da", "rel": "bookmark"}]}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_243_lessee_member_cannot_delete_vendor_passthru [0.236153s] ... 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-d7302e05-39dd-4604-8223-18cd4b191937 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_320_deploy_templates_deploy_template_id_get_admin [0.225500s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/08149e73-c8bd-4a6c-9c8b-e1270650efc1 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8381f2ee-6119-41ba-95bd-bb2889781659 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "08149e73-c8bd-4a6c-9c8b-e1270650efc1", "created_at": "2025-05-07T22:59:40.307241+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/08149e73-c8bd-4a6c-9c8b-e1270650efc1", "rel": "self"}, {"href": "http://localhost/deploy_templates/08149e73-c8bd-4a6c-9c8b-e1270650efc1", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_244_lessee_reader_cannot_delete_vendor_passthru [0.170169s] ... 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-fff439f2-200c-4117-907f-6678317afbee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_245_owner_reader_get_traits [0.187974s] ... 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-e13f2a4e-ea11-4d9c-b633-efadc4dee82c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"traits": []} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_321_deploy_templates_deploy_template_id_get_member [0.226520s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/8605f6c2-1950-4334-925e-9fbff9d9bb5b WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bc255795-6c00-4bb9-aad5-2fdd52786b08 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "8605f6c2-1950-4334-925e-9fbff9d9bb5b", "created_at": "2025-05-07T22:59:40.528812+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/8605f6c2-1950-4334-925e-9fbff9d9bb5b", "rel": "self"}, {"href": "http://localhost/deploy_templates/8605f6c2-1950-4334-925e-9fbff9d9bb5b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {3} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_create_schema_and_version ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect {3} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_create_schema ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect {3} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_version ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect {3} ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_twice ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect {2} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_shared_lock [0.692966s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_walk_versions ... SKIPPED: Backend 'postgresql+psycopg2' is unavailable: Could not connect {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_246_owner_reader_get_traits_service [0.241162s] ... 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-c4eb891c-370c-456f-a82c-425e24bd4ed7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"traits": []} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_322_deploy_templates_deploy_template_id_get_reader [0.211270s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/80be8c17-0536-479e-bd40-9369e7d5f5f0 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6bc5f5b3-6a36-4f39-a60f-18c014093819 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "80be8c17-0536-479e-bd40-9369e7d5f5f0", "created_at": "2025-05-07T22:59:40.742505+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/80be8c17-0536-479e-bd40-9369e7d5f5f0", "rel": "self"}, {"href": "http://localhost/deploy_templates/80be8c17-0536-479e-bd40-9369e7d5f5f0", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {3} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create [0.071849s] ... ok {3} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_name [0.059994s] ... ok {2} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_sync [0.186428s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_uuid [0.044481s] ... ok {3} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_invalid_step_no_interface [0.056373s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_247_lessee_reader_get_traits [0.253937s] ... 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-dc6da47f-7319-4d0d-989e-bedbf726b3dd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"traits": []} {3} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_no_steps [0.051309s] ... ok {2} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_unsupported_method [0.165332s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.db.test_deploy_templates.DbDeployTemplateTestCase.test_destroy [0.056926s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_323_deploy_templates_deploy_template_id_patch_admin [0.330818s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/1f689bfd-3807-40e2-9254-55b533158e81 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e648bfef-6cd2-48d1-ab60-d5061f7f6a98 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1f689bfd-3807-40e2-9254-55b533158e81", "created_at": "2025-05-07T22:59:40.973907+00:00", "updated_at": "2025-05-07T22:59:41.145655+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/1f689bfd-3807-40e2-9254-55b533158e81", "rel": "self"}, {"href": "http://localhost/deploy_templates/1f689bfd-3807-40e2-9254-55b533158e81", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} {3} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_id [0.065966s] ... ok {3} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_name [0.065241s] ... ok {2} ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_worker_pool_full [0.198778s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_by_uuid [0.057348s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_248_third_party_admin_cannot_get_traits [0.269842s] ... 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-aa1dbbe3-e1d2-4e52-861d-03755e4ec8c4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list [0.056105s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_324_deploy_templates_deploy_template_id_patch_member [0.262600s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/f83c70fb-13be-4d42-bfb8-369ee48980b8 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ec58e2d8-8eb6-4130-8772-bcb81d74dba6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_exclusive [0.110912s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names [0.066981s] ... ok {2} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_interface_check [0.059627s] ... ok {3} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_by_names_no_match [0.047558s] ... ok {2} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_limit [0.075104s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_249_owner_admin_can_put_traits [0.263131s] ... 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-beb02447-ee2a-4b8c-90dd-dffd179a7b81 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_get_deploy_template_list_sorted [0.096192s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_325_deploy_templates_deploy_template_id_patch_reader [0.225520s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/444fe5c7-1aa5-4f64-95bb-621af21e55eb WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5ff8d4a0-4707-4d4c-afb9-c8317a8fb505 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_never_run [0.081694s] ... ok {3} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_duplicate_name [0.073273s] ... ok {3} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_extra [0.059311s] ... ok {3} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_name [0.029868s] ... ok {3} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_not_found [0.026263s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_250_owner_manager_can_put_traits [0.227170s] ... 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-96b4d483-2d97-478f-9a68-ad81d406b18d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_add [0.039097s] ... ok {3} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_remove_all [0.042428s] ... ok {3} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace [0.060683s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_251_owner_service_can_put_traits [0.160295s] ... 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-f77e5c7b-1e5c-411e-b17e-f2abdf42c7e8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace_args [0.045276s] ... ok {3} ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_uuid_not_allowed [0.050910s] ... ok {3} ironic.tests.unit.db.test_node_inventory.DBNodeInventoryTestCase.test_destroy_node_inventory_by_node_id [0.037545s] ... ok {3} ironic.tests.unit.db.test_node_inventory.DBNodeInventoryTestCase.test_get_inventory_by_node_id [0.038122s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_252_owner_member_cannot_put_traits [0.156619s] ... 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-3abdc0cb-5316-4a55-a806-923307993360 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_shard.ShardTestCase.test_get_shard_empty_list [0.036819s] ... ok {3} ironic.tests.unit.db.test_shard.ShardTestCase.test_get_shard_list [0.052819s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_type_connector_id [0.033969s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_uuid [0.051794s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_destroy_volume_connector [0.033366s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_id [0.041239s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_253_lessee_admin_cannot_put_traits [0.238788s] ... 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-0f13e771-a24b-4f39-908d-8564dfbaa402 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_326_deploy_templates_deploy_template_id_delete_admin [0.783591s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/057e35a2-1097-4ac1-9074-9f8b4ec56bdf GOT Response: 204 No Content Openstack-Request-Id: req-f6f0e7a5-39da-4f0f-8be8-f818e46e68b0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_uuid [0.043911s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list [0.029003s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list_sorted [0.030000s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_327_deploy_templates_deploy_template_id_delete_member [0.132484s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/fd41f1e6-8530-489e-a171-fbe00473bf9a GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1aa836a6-d0c1-48c2-b6a4-70f508d17a00 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id [0.048276s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id_that_does_not_exist [0.028951s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector [0.038837s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_254_lessee_manager_cannot_put_traits [0.233508s] ... 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-019bb47e-7231-4ccf-8b15-daf3d0c2c666 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_duplicated_type_connector_id [0.035217s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_328_deploy_templates_deploy_template_id_delete_reader [0.142189s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/936309f5-2535-4df7-a376-b02a32418ac2 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6f4b74aa-f0a1-4366-9ce7-7bff7473514e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_fails_invalid_id [0.041029s] ... ok {3} ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_uuid [0.027114s] ... ok {3} ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_clean_dhcp_opts [0.090958s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_329_chassis_post_admin [0.173908s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/1b0e666e-0d5b-4c1b-b3cd-e19eab87205b Openstack-Request-Id: req-56b3c6ee-3597-44e1-b5bc-63b6081d9ef9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "1b0e666e-0d5b-4c1b-b3cd-e19eab87205b", "created_at": "2025-05-07T22:59:42.896659+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/1b0e666e-0d5b-4c1b-b3cd-e19eab87205b", "rel": "self"}, {"href": "http://localhost/chassis/1b0e666e-0d5b-4c1b-b3cd-e19eab87205b", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/1b0e666e-0d5b-4c1b-b3cd-e19eab87205b/nodes", "rel": "self"}, {"href": "http://localhost/chassis/1b0e666e-0d5b-4c1b-b3cd-e19eab87205b/nodes", "rel": "bookmark"}]]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_255_lessee_member_cannot_put_traits [0.300494s] ... 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-4e9f1476-4be8-4e15-b4b0-68bb9081cff1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_330_chassis_post_member [0.189347s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5fc439e3-bbad-47cc-b8aa-ff32fa68c9ff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_331_chassis_post_reader [0.126506s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-66201964-8946-4368-89e0-9895ffc867b0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_get_ip_addresses [0.385007s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_256_third_party_admin_cannot_put_traits [0.238178s] ... 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-1cae4172-6a08-4c6f-b88b-80be9e2a7424 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_update_dhcp [0.055068s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_factory.CompareBasetoModules.test_drivers_match_dhcp_base [0.032260s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_332_chassis_get_admin [0.141888s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4891a445-46df-4c61-9b7a-ebd61df25a6e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]} {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address [0.032563s] ... ok {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_invalid_ip [0.031979s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_257_third_party_admin_cannot_put_traits_service [0.190422s] ... 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-43b4afcd-537e-4854-946c-2c09440b9ac7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_ipv6 [0.038297s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_333_chassis_get_member [0.124417s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-732e819d-5633-46e9-8ec3-7e881ab30d21 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]} {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_with_exception [0.039124s] ... ok {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_portgroup_int_info [0.083316s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_258_owner_admin_can_delete_traits [0.153096s] ... 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-63d403ef-2320-4034-9417-952ac51b1d63 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_334_chassis_get_reader [0.135901s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-826deaac-aa1c-4a6d-a36b-6d0c56338991 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]} {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_ports_int_info [0.057703s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_cleaning [0.069827s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_259_owner_manager_can_delete_traits [0.157718s] ... 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-23fb8223-ace9-4ab5-b2e8-34a72babd67f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_335_chassis_get_service [0.140936s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-11cc381d-c36b-4685-a263-641ca6b83f75 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]} {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup [0.079894s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_periodics.NodePeriodicTestCase.test_simple [2.113129s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_periodics.NodePeriodicTestCase.test_stop [0.068284s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_260_owner_member_cannot_delete_traits [0.142962s] ... 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-8bd3d65b-d688-43ba-9460-ad58e19afaf9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_336_chassis_detail_get_admin [0.143802s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e93dda9c-6a93-4cb8-a660-76ce85d6888b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-07T22:59:43.866881+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.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup_with_exception [0.130015s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_rpc_service.TestRPCService.test_drain_has_reserved [0.075028s] ... ok {2} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_shutdown_timeout_reached [0.051392s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_337_chassis_detail_get_member [0.129630s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3e2e4b1d-ab06-4f8e-9c66-86447217f5eb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-07T22:59:43.999590+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.TestRBACProjectScoped.test_project_scoped_261_lessee_admin_cannot_delete_traits [0.131074s] ... 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-5a17f4b7-8021-4dd2-b3d2-a4075b154f06 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_provisioning [0.115259s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_rpc_service.TestRPCService.test_start [0.118029s] ... ok {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_tenant [0.064042s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_with_exception [0.056032s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_338_chassis_detail_get_reader [0.153169s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-97201b49-ef72-4a76-8dbf-913c72d85853 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-07T22:59:44.157178+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.TestRBACProjectScoped.test_project_scoped_262_lessee_manager_cannot_delete_traits [0.158654s] ... 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-95991d53-133c-4f89-a064-3c828ccde198 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_start_failure [0.129006s] ... ok {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses [0.078116s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_339_chassis_chassis_id_get_admin [0.160641s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0d7de1fe-9d12-4d79-aec4-51fbff0857f0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-07T22:59:44.316068+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.conductor.test_rpc_service.TestRPCService.test_start_no_rpc [0.124551s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_263_lessee_member_cannot_delete_traits [0.182197s] ... 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-effbd7f0-54ac-4d87-a859-5fe3f7cd9da2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses_for_port_and_portgroup [0.134549s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.054664s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_rpc_service.TestRPCService.test_stop_after_full_reset_interval [0.095281s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_340_chassis_chassis_id_get_member [0.151379s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e62aace6-9046-4dcc-a692-cb51d47ec36f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-07T22:59:44.457144+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.dhcp.test_neutron.TestNeutron.test_update_dhcp_fails [0.061795s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_264_third_party_admin_cannot_delete_traits [0.154110s] ... 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-c638c49e-acfa-4019-9f20-ee8900b72d27 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_after_remaining_interval [0.091258s] ... ok {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_no_vif_data [0.085024s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_rpc_service.TestRPCService.test_stop_has_reserved [0.098096s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_341_chassis_chassis_id_get_reader [0.171248s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-404153f7-3ce7-471e-9a6b-17c85c59282b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-07T22:59:44.602412+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.dhcp.test_neutron.TestNeutron.test_update_dhcp_set_sleep_and_fake [0.109135s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_rpc_service.TestRPCService.test_stop_instant [0.115551s] ... ok {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_some_failures [0.069604s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_265_owner_admin_can_put_custom_traits [0.291471s] ... 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-6b1804a6-fa63-4a75-82b5-629eb07b0595 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_rpc_service.TestRPCService.test_stop_slow [0.104549s] ... ok {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_unset_sleep_and_fake [0.128923s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_342_chassis_chassis_id_patch_admin [0.264261s] ... 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-7bda4229-e363-4f16-bfb6-01f5302d4d2f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-07T22:59:44.820989+00:00", "updated_at": "2025-05-07T22:59:44.940261+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"}]]} {2} ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_cap [0.070200s] ... ok {2} ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_capped [0.060350s] ... ok {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts [0.109163s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_rpcapi.ConductorRPCAPITestCase.test_versions_in_sync [0.062763s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_266_owner_manager_can_put_custom_traits [0.256755s] ... 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-33eff8e7-617b-4e23-8ac7-a7259104b0ed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_343_chassis_chassis_id_patch_member [0.257572s] ... 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-ec6c0ee5-6f77-4be9-b74a-775f609154c3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "created_at": "2025-05-07T22:59:45.088995+00:00", "updated_at": "2025-05-07T22:59:45.202232+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.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_v4_and_v6 [0.163423s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_267_owner_member_cannot_put_custom_traits [0.295510s] ... 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-6d3c0066-1bbc-445e-b555-2fe67ca91423 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_v6 [0.178060s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_344_chassis_chassis_id_patch_reader [0.311615s] ... 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-5ec4d26d-de80-47b5-b18c-4ed84df81fdc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_with_exception [0.163831s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_servicing.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children [0.575696s] ... ok 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_268_lessee_admin_cannot_put_custom_traits [0.317768s] ... 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-a85c42f6-8f1f-4ee7-9fa6-59889f8e47a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_mac_address_with_ethernet_interfaces [0.153688s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_345_chassis_chassis_id_delete_admin [0.306218s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 204 No Content Openstack-Request-Id: req-82e40cd0-dc0b-48a9-b37d-8e2428750ccd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_mac_address_without_ethernet_interfaces [0.101942s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_269_lessee_manager_cannot_put_custom_traits [0.291721s] ... 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-a1f9e1a5-eb8d-4405-8a70-ac76e5d95266 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_with_BIOS_boot_mode [0.160580s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_346_chassis_chassis_id_delete_member [0.255125s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-341f05ce-0c49-48e6-9850-373962e26740 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_servicing.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children_by_uuid [0.444044s] ... ok 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.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_with_UEFI_boot_mode [0.130197s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_callback_stable_state [0.071067s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_fsm_raises [0.044804s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_pxe_port_macs_without_boot_mode [0.085609s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_notify [0.049734s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test_get_properties [0.071324s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_270_lessee_member_cannot_put_custom_traits [0.309751s] ... 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-67b93895-5274-4dc3-8cf8-fc0c18730f73 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_stable_state [0.060318s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_347_chassis_chassis_id_delete_reader [0.282231s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8e18f7c0-b965-4681-963e-9d4bc75196fd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback [0.069339s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test_inspect_hardware_with_ethernet_interfaces_mac [0.107260s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback_and_error_handler [0.054247s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__change_physical_disk_state_attribute_error [0.069474s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_target_state [0.067072s] ... ok {2} ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_release_clears_resources [0.054034s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_271_third_party_admin_cannot_put_custom_traits [0.310316s] ... 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-5227562c-7ab9-4b84-b574-e974824f92ca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_348_chassis_chassis_id_delete_service [0.279495s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-427f31d7-036a-4acf-b70b-eaf469710a57 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status [0.178998s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.149918s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_convert_controller [0.234321s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.186117s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_272_owner_reader_get_vifs [0.315545s] ... 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-d2b4ee38-1bab-4ea5-9424-ac41196ecada X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_349_node_history_get_admin [0.318278s] ... 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-93a3f43f-75c4-4ef2-9162-cfadabbc3486 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"history": [{"uuid": "6b8280ff-8612-4d65-a00f-757f9cff3ca6", "created_at": "2025-05-07T22:59:46.859374+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/6b8280ff-8612-4d65-a00f-757f9cff3ca6", "rel": "self"}]}]} {2} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps_unset_clean_step [0.164823s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_350_node_history_get_member [0.152023s] ... 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-bc4f7751-0bde-49d0-b3ef-2ef2d1470d8c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"history": [{"uuid": "96d599cf-d2b6-429f-ab7a-f3f85c0d0b89", "created_at": "2025-05-07T22:59:47.084865+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/96d599cf-d2b6-429f-ab7a-f3f85c0d0b89", "rel": "self"}]}]} {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_task_failed [0.229047s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_273_lessee_reader_get_vifs [0.199361s] ... 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-780f09bc-4a3d-4357-a4e9-043cc852d595 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps [0.111747s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_351_node_history_get_reader [0.151362s] ... 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-2471a930-090f-454e-9a85-6ee639507017 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"history": [{"uuid": "499713b6-9fa8-4ca1-ae59-f6441b60a450", "created_at": "2025-05-07T22:59:47.239374+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/499713b6-9fa8-4ca1-ae59-f6441b60a450", "rel": "self"}]}]} {2} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps_no_skip [0.106846s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_task_still_processing [0.207750s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_274_third_party_admin_cannot_get_vifs [0.213913s] ... 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-55747b0d-ad5c-46e4-a307-8513a7cdefc3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_352_node_history_get_service [0.114226s] ... 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-a74f17ab-f8f2-45f3-a025-48890e4cff70 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"history": [{"uuid": "37e4c5ff-e607-41bc-a6a0-ac548b71b1d9", "created_at": "2025-05-07T22:59:47.374183+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/37e4c5ff-e607-41bc-a6a0-ac548b71b1d9", "rel": "self"}]}]} {2} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps_unset_deploy_step [0.110774s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_raid.DracRedfishRAIDTestCase.test__clear_foreign_config_attribute_error [0.081998s] ... ok {2} ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_steps_exception [0.096989s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_275_owner_admin_can_post_vifs [0.169902s] ... 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-77d50c87-dea0-491a-922f-591eb65e4701 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_353_node_history_get_entry_admin [0.164479s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/fd4f6923-0c50-4a31-b2f4-a83f0f0c9bfe WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b8045720-6924-49c5-9db1-1129342579d1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "fd4f6923-0c50-4a31-b2f4-a83f0f0c9bfe", "created_at": "2025-05-07T22:59:47.524764+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/fd4f6923-0c50-4a31-b2f4-a83f0f0c9bfe", "rel": "self"}]} {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode [0.177496s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.160983s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_276_service_can_post_vifs_for_own_project [0.135790s] ... 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-1ff2c40e-7f53-4688-9733-7688e42ceeb7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_no_conversion [0.098708s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_354_node_history_get_entry_member [0.215193s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/63808516-a7dd-4965-886a-c3da576a4173 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-47d0239d-80c4-4a3f-9b93-a8a7da401c42 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "63808516-a7dd-4965-886a-c3da576a4173", "created_at": "2025-05-07T22:59:47.695910+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/63808516-a7dd-4965-886a-c3da576a4173", "rel": "self"}]} {2} ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_valid [0.129986s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_not_raid [0.111664s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_no_change [0.107264s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_idrac [0.104116s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.097076s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_277_service_cannot_post_vifs_for_other_project [0.319767s] ... 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-26aeeb59-1fdc-49e1-9361-1fcab8c4ebd6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_sushy [0.149871s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.096745s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_355_node_history_get_entry_reader [0.325319s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/9b5c90c9-0051-466d-8bc0-aa96c6ee78de WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bd2ee311-cb90-4444-bbfb-1c10316b5332 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "9b5c90c9-0051-466d-8bc0-aa96c6ee78de", "created_at": "2025-05-07T22:59:48.008902+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/9b5c90c9-0051-466d-8bc0-aa96c6ee78de", "rel": "self"}]} {2} ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_take_over [0.098549s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_sushy_oem [0.153011s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits [0.065913s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__get_storage_controller_invalid_identity [0.047289s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_empty_instance_traits [0.050755s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_278_owner_manager_can_post_vifs [0.316611s] ... 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-509b8bba-a4da-4584-9477-a8eb572f92b9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_trait_type [0.063406s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__is_realtime_ready [0.116265s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_invalid_type [0.060327s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_356_node_inventory_get_admin [0.366975s] ... 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-cf33baf6-4a31-4b30-b75f-cd21691acf2a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"inventory": {"inventory": "test"}, "plugin_data": {"pdata": {"plugin": "data"}}} {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__query_raid_tasks_status [0.100987s] ... ok {2} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_missing [0.096101s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__query_raid_tasks_status_no_task_monitor_url [0.052507s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready [0.043100s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready_retry_exceeded [0.026616s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_279_lessee_admin_can_post_vifs [0.310778s] ... 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-266fd0ed-450b-4dd3-b482-87d579623825 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready_retry_fails [0.031108s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_failed_clean [0.052748s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_357_node_inventory_get_reader [0.323027s] ... 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-a143518a-3f82-42a8-9be5-49975b75ade8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"inventory": {"inventory": "test"}, "plugin_data": {"pdata": {"plugin": "data"}}} {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_failed_deploy [0.080423s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_raid.DracRedfishRAIDTestCase.test__set_success_clean [0.092575s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_280_lessee_manager_can_post_vifs [0.297228s] ... 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-2096be35-7f4e-4599-a0e5-cfd80fca094d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_358_node_history_get_entry_service [0.234363s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/7b6a1acd-87b2-4eb5-8216-0c55458f677c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-99824fc4-488a-4a24-a1b0-f51c98b83e4e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "7b6a1acd-87b2-4eb5-8216-0c55458f677c", "created_at": "2025-05-07T22:59:48.973557+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/7b6a1acd-87b2-4eb5-8216-0c55458f677c", "rel": "self"}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_281_owner_member_can_post_vifs [0.225244s] ... 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-4daaa30f-34b5-4dbb-82b3-bfe8feea7b5b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_359_shard_get_shards [0.191764s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4b117563-660e-4781-977d-81a09d5a9c9f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"shards": [{"name": "None", "count": 3}]} {2} ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_no_instance_traits [0.758827s] ... ok {2} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__container_name [0.073657s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_282_lessee_member_cannot_post_vifs [0.196944s] ... 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-e76b537f-b50c-4e2e-ba10-47ef99eaee0f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"} {2} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__container_path [0.063876s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_success_deploy [0.592737s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.container.test_console_container.TestSystemdConsoleContainer.test__host_port [0.075921s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_360_shard_patch_set_node_shard [0.327227s] ... 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-a25f1046-2c69-4f90-882b-c6f13b527521 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__reload [0.062190s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__wait_till_realtime_ready [0.072595s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_283_owner_reader_cannot_post_vifs [0.185754s] ... 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-d4e529ad-a7cd-443b-b485-ea114e80e129 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__wait_till_realtime_ready_retryerror [0.064292s] ... ok {2} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__start [0.080777s] ... ok {2} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__stop [0.064292s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_create_configuration [0.112274s] ... ok {2} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__unit_name [0.048270s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_361_shard_patch_set_node_shard_disallowed [0.230606s] ... 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-26cfdc8d-264e-416c-8486-920499954384 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:shard\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_284_lessee_reader_cannot_post_vifs [0.178118s] ... 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-36f4d4ff-9fe3-48c2-b9ff-0b3b1eda78f8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:attach\", \"debuginfo\": null}"} {2} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test__write_container_file [0.044691s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_delete_configuration [0.096243s] ... ok {2} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test_delete_container_file [0.051703s] ... ok {2} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test_start_stop_container [0.047442s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_362_parent_node_patch_by_admin [0.143362s] ... 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-4dd824ad-249a-4bf2-af07-fa09f20ee940 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.console.container.test_console_container.TestSystemdConsoleContainer.test_stop_all_containers [0.047919s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_285_third_party_admin_cannot_post_vifs [0.166882s] ... 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-1e2733a2-906b-4c35-ab8c-9c6dc560e29d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_client_auth_invalid_fails [0.044172s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_foreign_async [0.164869s] ... ok {2} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_exception_in_choose_security_type_fails [0.045242s] ... ok {2} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_exception_security_handshake_fails [0.047497s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_foreign_sync [0.104323s] ... ok {2} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_fail [0.054245s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_363_parent_node_patch_by_member [0.241310s] ... 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-202f7d88-8ec9-4346-8a89-fd5a2776ef8b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_fail_server_message [0.050338s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_post_delete_configuration_no_subtasks [0.086905s] ... ok {2} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_fails_on_host_version [0.041573s] ... ok {2} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_fails_on_sec_type_cnt_zero [0.048946s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_364_parent_node_patch_by_reader [0.138799s] ... 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-807fb193-140f-4482-904e-8232b2623a8a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:parent_node\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_pre_create_configuration [0.094410s] ... ok {2} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_fails_on_tenant_version [0.040839s] ... ok {2} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_full_run [0.018178s] ... ok {2} ironic.tests.unit.console.securityproxy.test_rfb.RFBSecurityProxyTestCase.test_parse_version [0.016000s] ... ok {3} ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_validate_correct_vendor [0.083278s] ... ok {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerDBTestCase.test_new_websocket_client_db [0.072137s] ... ok {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerDBTestCase.test_new_websocket_client_db_instance_not_found [0.076993s] ... ok {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test__close_connection [0.085338s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_365_nodes_firmware_component_get_admin [0.306695s] ... 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-9ec706e9-7bf0-49f0-bc2c-05d4f820c2b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"firmware": [{"created_at": "2025-05-07T22:59:50.514815+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.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error_cleaning [0.238918s] ... ok {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test__close_connection_raise_OSError [0.086506s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_286_owner_admin_delete_vifs [0.746406s] ... 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-57530bbb-af04-4064-867e-9f3277c4d586 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_address_string_doesnt_do_reverse_dns_lookup [0.080006s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_error_deploying [0.169646s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_366_nodes_firmware_component_get_member [0.221052s] ... 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-aeb1f7e2-335d-408a-8616-d7f4ee156bbb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"firmware": [{"created_at": "2025-05-07T22:59:50.773120+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.test_acl.TestRBACProjectScoped.test_project_scoped_287_owner_manager_delete_vifs [0.215732s] ... 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-a8f6ac05-5dc3-4574-a5e2-35b18f2683cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed_cleaning [0.170197s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_367_nodes_firmware_component_get_reader [0.240590s] ... 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-6de7c765-9420-43cb-aa40-50097d55a410 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"firmware": [{"created_at": "2025-05-07T22:59:51.014072+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.test_acl.TestRBACProjectScoped.test_project_scoped_288_lessee_admin_can_delete_vifs [0.162581s] ... 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-623de621-1f50-4640-937f-210b5846b0b6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_get_settings_failed_deploying [0.149294s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_apply_configuration [0.096677s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_factory_reset [0.118561s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_289_lessee_manager_can_delete_vifs [0.296243s] ... 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-d09649e8-c0e5-44a0-8371-b3d4591e6bee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client [0.702901s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed_cleaning [0.159823s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_290_owner_member_can_delete_vifs [0.237218s] ... 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-59d8d739-e979-47d7-a8a3-9d2b4d4019d5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_http_forwarded_proto_https [0.200270s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_iloobj_failed_deploy [0.182005s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_368_runbooks_post_admin [0.732736s] ... 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/ee2b4631-e6a1-4156-a6f8-52e9e3073ea3 Openstack-Request-Id: req-30740ea4-d808-4d98-8a61-51a379c81465 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ee2b4631-e6a1-4156-a6f8-52e9e3073ea3", "created_at": "2025-05-07T22:59:51.799083+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/ee2b4631-e6a1-4156-a6f8-52e9e3073ea3", "rel": "self"}, {"href": "http://localhost/runbooks/ee2b4631-e6a1-4156-a6f8-52e9e3073ea3", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_291_lessee_member_cannot_delete_vifs [0.172296s] ... 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-b9be0f4d-29ea-46bc-ae3a-72931cb262ec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:detach\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid_cleaning [0.162507s] ... ok {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_ipv6_url [0.205303s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_post_boot_bios_step_invalid_deploy [0.132984s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_369_runbooks_post_member [0.194749s] ... 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/e7db9f05-4aa8-4689-924f-d5078669cce3 Openstack-Request-Id: req-6389335b-522a-4ec8-bc85-144249f00c9b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e7db9f05-4aa8-4689-924f-d5078669cce3", "created_at": "2025-05-07T22:59:52.010999+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/e7db9f05-4aa8-4689-924f-d5078669cce3", "rel": "self"}, {"href": "http://localhost/runbooks/e7db9f05-4aa8-4689-924f-d5078669cce3", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_292_third_party_admin_cannot_delete_vifs [0.196880s] ... 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-9e8465bc-15b6-4421-bf70-de5c522db26c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_novnc_allowed_origin_header [0.186064s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_370_runbooks_post_reader [0.151234s] ... 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-560e45cb-3d05-4502-a35a-c2b571253696 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_conf_cleaning [0.187901s] ... ok {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_novnc_bad_origin_header [0.186227s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_293_service_can_delete_vifs [0.257449s] ... 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-b3280f3a-e7a8-4f28-a8e1-f746438efb86 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_conf_deploying [0.123260s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_371_runbooks_get_admin [0.213705s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-93fe44e4-ac22-4ee9-8207-fb961b747c67 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "915596d4-6fdc-479f-a839-46e1dc28540b", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/915596d4-6fdc-479f-a839-46e1dc28540b", "rel": "self"}, {"href": "http://localhost/runbooks/915596d4-6fdc-479f-a839-46e1dc28540b", "rel": "bookmark"}]}]} {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_apply_configuration [0.135526s] ... ok {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_novnc_blank_origin_header [0.216775s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_294_service_cannot_delete_other_nodes_vifs [0.217423s] ... 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-f1511764-6c04-4016-97cc-873a5875ef41 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_372_runbooks_get_member [0.190933s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-83cfd418-1166-43dd-aab2-f7814a2fffba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "bb6dd937-a6c5-43c8-b5c0-a8d866f42fba", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/bb6dd937-a6c5-43c8-b5c0-a8d866f42fba", "rel": "self"}, {"href": "http://localhost/runbooks/bb6dd937-a6c5-43c8-b5c0-a8d866f42fba", "rel": "bookmark"}]}]} {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset_cleaning [0.151640s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_factory_reset_deploying [0.114398s] ... ok {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_novnc_no_origin_header [0.234809s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_295_owner_readers_can_get_indicators [0.216734s] ... 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-8661476f-07b0-4f7b-a77d-1fd79e665cb2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_373_runbooks_get_reader [0.194346s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-54412261-a0cf-484c-aeac-306d2d106489 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "fa5c6def-4215-43f0-a419-13a4e553291f", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/fa5c6def-4215-43f0-a419-13a4e553291f", "rel": "self"}, {"href": "http://localhost/runbooks/fa5c6def-4215-43f0-a419-13a4e553291f", "rel": "bookmark"}]}]} {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed_cleaning [0.102038s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_iloobj_failed_deploying [0.089608s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_296_lesse_readers_can_get_indicators [0.220766s] ... 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-8b10f7de-0241-42fd-abd7-084b6453ca54 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_new_websocket_client_token_invalid [0.232168s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_374_runbooks_runbook_id_get_admin [0.233144s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/619e9e34-64d6-4938-8b44-a4d8c31defe8 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f942d7ee-f1a0-4ccc-b139-2fd71e4ade25 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "619e9e34-64d6-4938-8b44-a4d8c31defe8", "created_at": "2025-05-07T22:59:52.956081+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/619e9e34-64d6-4938-8b44-a4d8c31defe8", "rel": "self"}, {"href": "http://localhost/runbooks/619e9e34-64d6-4938-8b44-a4d8c31defe8", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid_cleaning [0.123911s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_invalid_deploying [0.067610s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed_cleaning [0.045708s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_reset_bios_failed_deploying [0.050720s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_297_third_party_admin_cannot_get_indicators [0.260000s] ... 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-c4fd00c1-8d83-41ce-ae58-001c19050f2d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_375_runbooks_runbook_id_get_member [0.226470s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/33fe1d00-0a0d-4f1c-9702-18ba18b7bf02 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-085b43cd-4fde-4432-81d8-cc00ac807c84 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "33fe1d00-0a0d-4f1c-9702-18ba18b7bf02", "created_at": "2025-05-07T22:59:53.195976+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/33fe1d00-0a0d-4f1c-9702-18ba18b7bf02", "rel": "self"}, {"href": "http://localhost/runbooks/33fe1d00-0a0d-4f1c-9702-18ba18b7bf02", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed_cleaning [0.076889s] ... ok {0} 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. {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test__execute_pre_boot_bios_step_set_bios_failed_deploying [0.160197s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_376_runbooks_runbook_id_get_reader [0.226326s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/de037ad2-cb1c-4614-bdac-f36b1828cf8c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6aa7438f-f000-40ba-af34-76a7cd417e3a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "de037ad2-cb1c-4614-bdac-f36b1828cf8c", "created_at": "2025-05-07T22:59:53.417418+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/de037ad2-cb1c-4614-bdac-f36b1828cf8c", "rel": "self"}, {"href": "http://localhost/runbooks/de037ad2-cb1c-4614-bdac-f36b1828cf8c", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {0} 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. {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_post_boot [0.170564s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_377_runbooks_runbook_id_patch_admin [0.213008s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/76337236-edfb-4f1e-bbfa-6d60eda61a32 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-00747cc7-7e18-4dd5-ac7b-e054b8e06bf0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "76337236-edfb-4f1e-bbfa-6d60eda61a32", "created_at": "2025-05-07T22:59:53.585961+00:00", "updated_at": "2025-05-07T22:59:53.659511+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/76337236-edfb-4f1e-bbfa-6d60eda61a32", "rel": "self"}, {"href": "http://localhost/runbooks/76337236-edfb-4f1e-bbfa-6d60eda61a32", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_300_owner_member_can_set_indicator [0.126583s] ... 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-ea39f9b7-80e3-4aca-b787-f5c8611e8de7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_pre_boot [0.161000s] ... ok {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_non_default_ssl_min_version_is_set [0.821957s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_378_runbooks_runbook_id_patch_member [0.156314s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/308d746c-118d-4299-8a66-dac4f0dfdd24 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dde84893-7b32-44c3-b2b8-c0366ab84080 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "308d746c-118d-4299-8a66-dac4f0dfdd24", "created_at": "2025-05-07T22:59:53.759688+00:00", "updated_at": "2025-05-07T22:59:53.820721+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/308d746c-118d-4299-8a66-dac4f0dfdd24", "rel": "self"}, {"href": "http://localhost/runbooks/308d746c-118d-4299-8a66-dac4f0dfdd24", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_301_lessee_member_cannot_set_indicator [0.133730s] ... 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-d2afafba-c389-4cc5-b712-8f91bb0d8f78 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_indicator_state\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings [0.156718s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_379_runbooks_runbook_id_patch_reader [0.143082s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/7bfc1b66-fcd5-4e9f-816b-4644cdc75586 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6d01ebec-6749-4c2a-9c70-e1a6b8ea727b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_302_third_party_admin_cannot_set_indicator [0.144611s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PUT /v1/nodes/2020efad-427e-4f49-97a1-41ee5c1ef007/management/indicators/component/magic_light WITH None GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-57cf4afa-a9d2-4a00-ba70-0b97f4cbf6e1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 2020efad-427e-4f49-97a1-41ee5c1ef007 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_reject_open_redirect [0.266859s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_invalid_parameter [0.121416s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_303_owner_reader_can_list_portgroups [0.201921s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1ec54178-c702-4b6d-95f6-239c528cf851 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "address": "01:03:09:ff:01:01", "name": "magicfoo", "links": [{"href": "http://localhost/v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "self"}, {"href": "http://localhost/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "bookmark"}]}, {"uuid": "6befd7cd-e50a-4e7e-a7ef-4e5eba63e2be", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6befd7cd-e50a-4e7e-a7ef-4e5eba63e2be", "rel": "self"}, {"href": "http://localhost/portgroups/6befd7cd-e50a-4e7e-a7ef-4e5eba63e2be", "rel": "bookmark"}]}]} {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_missing_parameter [0.142653s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_380_runbooks_runbook_id_patch_public_admin [0.236076s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/08f71769-0981-4014-bb81-d30549003116 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-390dc172-600f-4946-a0b2-391624d201fe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "08f71769-0981-4014-bb81-d30549003116", "created_at": "2025-05-07T22:59:54.086714+00:00", "updated_at": "2025-05-07T22:59:54.195680+00:00", "name": "CUSTOM_DT1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/08f71769-0981-4014-bb81-d30549003116", "rel": "self"}, {"href": "http://localhost/runbooks/08f71769-0981-4014-bb81-d30549003116", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_reject_open_redirect_3_slashes [0.253379s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_ilo_error [0.174593s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_304_owner_service_can_list_portgroups [0.192224s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cd3fe53c-8645-47ac-98cf-0e252b8691d9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "address": "01:03:09:ff:01:01", "name": "magicfoo", "links": [{"href": "http://localhost/v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "self"}, {"href": "http://localhost/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "bookmark"}]}, {"uuid": "3bfe8b0a-f44b-4120-8b54-00c709f1ecd6", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/3bfe8b0a-f44b-4120-8b54-00c709f1ecd6", "rel": "self"}, {"href": "http://localhost/portgroups/3bfe8b0a-f44b-4120-8b54-00c709f1ecd6", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_381_runbooks_runbook_id_patch_public_member [0.205844s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/e90aeb53-8dfd-4bb6-ad8b-f6454aede930 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b6c21a97-5c15-420c-8681-fa11996d17f9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e90aeb53-8dfd-4bb6-ad8b-f6454aede930", "created_at": "2025-05-07T22:59:54.358987+00:00", "updated_at": "2025-05-07T22:59:54.413441+00:00", "name": "CUSTOM_DT1", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/e90aeb53-8dfd-4bb6-ad8b-f6454aede930", "rel": "self"}, {"href": "http://localhost/runbooks/e90aeb53-8dfd-4bb6-ad8b-f6454aede930", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_unknown_error [0.136350s] ... ok {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_ssl_min_version_is_not_set [0.223289s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_305_lessee_reader_can_list_portgroups [0.151598s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-90fadcdc-df44-4d12-9df4-f3f5e111daf2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "d5feba23-e42c-4f11-9fdf-6a959ae7598f", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/d5feba23-e42c-4f11-9fdf-6a959ae7598f", "rel": "self"}, {"href": "http://localhost/portgroups/d5feba23-e42c-4f11-9fdf-6a959ae7598f", "rel": "bookmark"}]}]} {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_382_runbooks_runbook_id_patch_public_reader [0.148023s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/b1eb5bb9-230c-462b-81f3-4caf39151384 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-40b3408e-6ec1-4530-a2fb-8f672d571766 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_get_properties [0.120183s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_306_third_party_admin_cannot_list_portgroups [0.130804s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-27fae829-a45f-45be-8d38-6424643a74a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": []} {3} ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_validate [0.111420s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_383_runbooks_runbook_id_patch_owner_admin [0.189922s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/c576be87-7456-47af-bf58-9fd671ec957f WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-eff5aebe-a0bb-4748-b71f-c9c25934e4b8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "c576be87-7456-47af-bf58-9fd671ec957f", "created_at": "2025-05-07T22:59:54.677780+00:00", "updated_at": "2025-05-07T22:59:54.739074+00:00", "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "new_owner", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/c576be87-7456-47af-bf58-9fd671ec957f", "rel": "self"}, {"href": "http://localhost/runbooks/c576be87-7456-47af-bf58-9fd671ec957f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.console.securityproxy.test_websocketproxy.IronicProxyRequestHandlerTestCase.test_ssl_min_version_not_set_by_default [0.282264s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_exception [0.097679s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_307_owner_reader_can_read_portgroup [0.185625s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-59b1e63b-b4b2-4958-9940-52d3d503b365 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "created_at": "2025-05-07T22:59:54.735830+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"}]} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_false [0.139521s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_384_runbooks_runbook_id_patch_owner_member [0.217734s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/a1e78f2f-48b1-4c96-b81c-b4105a883f20 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a5ce52af-03c4-434b-aa9b-7085c9bea834 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a1e78f2f-48b1-4c96-b81c-b4105a883f20", "created_at": "2025-05-07T22:59:54.888536+00:00", "updated_at": "2025-05-07T22:59:54.965109+00:00", "name": "CUSTOM_DT1", "extra": {}, "public": false, "owner": "new_owner", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/a1e78f2f-48b1-4c96-b81c-b4105a883f20", "rel": "self"}, {"href": "http://localhost/runbooks/a1e78f2f-48b1-4c96-b81c-b4105a883f20", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_308_lessee_reader_can_read_portgroup [0.188350s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/11b03c38-e678-47ff-a64c-922fc252d3fb WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b1b6de12-1949-47d8-b32e-1dee6451266b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "11b03c38-e678-47ff-a64c-922fc252d3fb", "created_at": "2025-05-07T22:59:54.959454+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/11b03c38-e678-47ff-a64c-922fc252d3fb", "rel": "self"}, {"href": "http://localhost/portgroups/11b03c38-e678-47ff-a64c-922fc252d3fb", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/11b03c38-e678-47ff-a64c-922fc252d3fb/ports", "rel": "self"}, {"href": "http://localhost/portgroups/11b03c38-e678-47ff-a64c-922fc252d3fb/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_true [0.114020s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_385_runbooks_runbook_id_patch_owner_reader [0.145101s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/853f82b9-81bb-4612-a290-462323961852 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0633fb39-e303-484b-a955-eb58efddc475 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_309_third_party_admin_cannot_read_portgroup [0.153420s] ... 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-65f2d89c-4dc3-4dec-8651-8273fe8fb2e4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create [0.133394s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_386_runbooks_runbook_id_delete_admin [0.137909s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/344794b0-70f3-412a-90f3-184fc36553f5 GOT Response: 204 No Content Openstack-Request-Id: req-ab8c2402-23de-4044-834d-7613cb71ed4b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_310_owner_admin_can_add_portgroup [0.166352s] ... 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/fd2ee782-441e-4e3a-8414-f8fa59c68b39 Openstack-Request-Id: req-2025e082-7f9b-42bd-84eb-e6eca57965e7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "fd2ee782-441e-4e3a-8414-f8fa59c68b39", "created_at": "2025-05-07T22:59:55.344304+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/fd2ee782-441e-4e3a-8414-f8fa59c68b39", "rel": "self"}, {"href": "http://localhost/portgroups/fd2ee782-441e-4e3a-8414-f8fa59c68b39", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/fd2ee782-441e-4e3a-8414-f8fa59c68b39/ports", "rel": "self"}, {"href": "http://localhost/portgroups/fd2ee782-441e-4e3a-8414-f8fa59c68b39/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_glance_image [0.164710s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_387_runbooks_runbook_id_delete_member [0.147617s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/1718231c-256d-494b-bd5b-320fb343db39 GOT Response: 204 No Content Openstack-Request-Id: req-bc36404c-30e4-4dc4-8525-1ead14112f4b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_311_owner_service_can_add_portgroup [0.166645s] ... 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/8549c8bf-13e7-4f45-b278-a72dfdb5b436 Openstack-Request-Id: req-1c87ad1f-961c-4cd6-b660-f793219dc043 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "8549c8bf-13e7-4f45-b278-a72dfdb5b436", "created_at": "2025-05-07T22:59:55.499108+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/8549c8bf-13e7-4f45-b278-a72dfdb5b436", "rel": "self"}, {"href": "http://localhost/portgroups/8549c8bf-13e7-4f45-b278-a72dfdb5b436", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/8549c8bf-13e7-4f45-b278-a72dfdb5b436/ports", "rel": "self"}, {"href": "http://localhost/portgroups/8549c8bf-13e7-4f45-b278-a72dfdb5b436/ports", "rel": "bookmark"}]} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_http_url [0.144701s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_388_runbooks_runbook_id_delete_reader [0.135804s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/5db0f82d-9baf-4807-8c47-a0fd6bbc2ef2 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-81a57a59-8afa-4f5f-8ee4-a89b41c147bd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:delete\", \"debuginfo\": null}"} {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.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_swift_image [0.159099s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestWalkVersions.test_migrate_up [0.097174s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_312_owner_manager_can_add_portgroup [0.201769s] ... 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/d27bff5b-caca-4e2a-bea3-d2c9b9b361cd Openstack-Request-Id: req-743714a9-6abb-49d6-8877-fc763088f60a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d27bff5b-caca-4e2a-bea3-d2c9b9b361cd", "created_at": "2025-05-07T22:59:55.690526+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/d27bff5b-caca-4e2a-bea3-d2c9b9b361cd", "rel": "self"}, {"href": "http://localhost/portgroups/d27bff5b-caca-4e2a-bea3-d2c9b9b361cd", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/portgroups/d27bff5b-caca-4e2a-bea3-d2c9b9b361cd/ports", "rel": "self"}, {"href": "http://localhost/portgroups/d27bff5b-caca-4e2a-bea3-d2c9b9b361cd/ports", "rel": "bookmark"}]} {2} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up_with_data [0.059324s] ... ok {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_389_runbooks_post_project_admin [0.234755s] ... 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/f119f71f-9ef3-422e-8298-dbaa3a2372b1 Openstack-Request-Id: req-a3dc9f5c-8f77-4618-a708-724f8315f8eb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f119f71f-9ef3-422e-8298-dbaa3a2372b1", "created_at": "2025-05-07T22:59:55.740440+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/f119f71f-9ef3-422e-8298-dbaa3a2372b1", "rel": "self"}, {"href": "http://localhost/runbooks/f119f71f-9ef3-422e-8298-dbaa3a2372b1", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__parse_deploy_info [0.131397s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_313_owner_member_cannot_add_portgroup [0.156065s] ... 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-5a233d25-88e9-4ab5-a08e-777f11659296 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_default [0.159574s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info [0.191296s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_390_public_runbooks_post_admin [0.254871s] ... 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/9420909b-2a37-4462-bd7b-e7894a34f543 Openstack-Request-Id: req-f098c6a9-9b1f-4e64-be81-f0915987dcc7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "9420909b-2a37-4462-bd7b-e7894a34f543", "created_at": "2025-05-07T22:59:56.032372+00:00", "updated_at": null, "name": "CUSTOM_NAME", "extra": {}, "public": true, "owner": null, "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/9420909b-2a37-4462-bd7b-e7894a34f543", "rel": "self"}, {"href": "http://localhost/runbooks/9420909b-2a37-4462-bd7b-e7894a34f543", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {2} ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_false [0.140051s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_314_lessee_admin_cannot_add_portgroup [0.245154s] ... 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-52adff09-06fb-4fd1-a85e-443cf6168755 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class [0.067126s] ... ok {1} ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_disable [0.112972s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_instance_image_info [0.141782s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_models.TestGetClass.test_get_class_bad [0.072427s] ... ok {1} ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_enable [0.123578s] ... ok {2} ironic.tests.unit.db.test_api.MigrateToBuiltinInspectionTestCase.test_cannot_migrate [0.097165s] ... ok {1} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_add_request_id [0.089067s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_315_lessee_manager_cannot_add_portgroup [0.259837s] ... 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-79e91f9e-1d10-4746-b584-c1e9261763c2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_miss_context [0.074080s] ... 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.db.test_api.MigrateToBuiltinInspectionTestCase.test_cannot_migrate_some [0.212953s] ... ok {1} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_auth_token_info [0.094243s] ... ok {1} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_noauth_token_removed [0.075005s] ... ok {2} ironic.tests.unit.db.test_api.MigrateToBuiltinInspectionTestCase.test_migrate_all [0.121320s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_316_lessee_member_cannot_add_portgroup [0.252971s] ... 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-01a3604c-cb56-404a-8448-b3ff82faa6d8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_not_admin [0.096517s] ... ok {2} ironic.tests.unit.db.test_api.MigrateToBuiltinInspectionTestCase.test_migrate_with_limit [0.123195s] ... ok {2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_create_chassis_already_exists [0.031480s] ... ok {1} ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_public_api [0.087796s] ... ok {2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis [0.039260s] ... ok {1} ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_host_url [0.065172s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_317_third_party_admin_cannot_add_portgroup [0.245139s] ... 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-3f302d0a-ce90-4f0f-9142-7f92caa0a470 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_that_does_not_exist [0.049132s] ... ok {1} ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_public_endpoint [0.057066s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy [0.765428s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_disable_osp_wsgi_request [0.070528s] ... ok {1} ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_enable_osp_wsgi_request [0.081814s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_inst_info [0.150327s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_318_owner_admin_can_modify_portgroup [0.265740s] ... 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-d27475ef-6bde-4b0c-8b08-6506f221b1bf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.command.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_defaults [0.099938s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on [0.146878s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.command.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_produces_a_warning [0.102439s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on_inst_info [0.136261s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.command.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_random_no_zeros [0.088017s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_319_owner_manager_can_modify_portgroup [0.254966s] ... 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-b4a4a7ae-4d6d-46f2-b00e-05718b4f2341 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.command.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_zeros [0.057823s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_deploy_info [0.165369s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.command.test_dbsync.DbSyncTestCase.test_upgrade_and_version [0.122543s] ... 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. {1} ironic.tests.unit.common.test_args.ValidatePatchSchemaTest.test_patch [0.056622s] ... ok {1} ironic.tests.unit.common.test_args.ValidatePatchSchemaTest.test_patch_validation_failed [0.073621s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_320_owner_member_cannot_modify_portgroup [0.302952s] ... 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-99d30c65-968b-4d18-941e-d9dfc789f187 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_driver_info_default_mode [0.187774s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_args.ValidateTypesTest.test_types [0.073117s] ... ok {1} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_empty_response [0.038805s] ... ok {1} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_multiline [0.049792s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_driver_info_invalid_params [0.164166s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_multiline_no_file [0.057867s] ... ok {1} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_nomatch_line [0.047871s] ... ok {2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_with_nodes [1.081619s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_321_lessee_admin_cannot_modify_portgroup [0.276929s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/3ba53342-40ac-4982-ae3a-3a1c12fc86b6 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4b42bd2b-9279-4c6e-89e3-923ab6e907b0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsGetChecksumTestCase.test_get_checksum_from_url_one_line [0.053816s] ... ok {2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_id [0.042991s] ... ok {2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_uuid [0.021995s] ... ok {2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_list [0.048744s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_driver_info_rescue_mode [0.201175s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestCinderUtils.test__create_metadata_dictionary [0.098710s] ... ok {2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_that_does_not_exist [0.027037s] ... ok {2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis [0.027117s] ... ok {2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_that_does_not_exist [0.026591s] ... ok {1} ironic.tests.unit.common.test_cinder.TestCinderUtils.test__get_attachment_id [0.078889s] ... ok {2} ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_uuid [0.030461s] ... ok {2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_reservations_for_conductor [0.061127s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__validate_hrefs_http_image [0.171116s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestCinderUtils.test_is_volume_attached [0.106277s] ... ok {2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_target_power_state [0.047478s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_322_lessee_manager_cannot_modify_portgroup [0.326862s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/fd90b0ce-569e-4bd8-a4f1-a81b4cbfcf23 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b288aad8-6372-4e84-98cc-67f668e4a852 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_many_ht [0.066360s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__validate_hrefs_https_image [0.128984s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestCinderUtils.test_is_volume_available [0.114604s] ... ok {2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_one_ht [0.061175s] ... ok {1} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_dynamic_driver_interfaces_set [0.083094s] ... ok {2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_many_ht [0.068939s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__validate_instance_image_info [0.112144s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_323_lessee_member_cannot_modify_portgroup [0.212530s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/31976c5c-6d9d-4167-b7f5-6cda0d461a1f WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e229bd5e-796c-4f74-a7cc-100a61b8d981 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_no_ht [0.071613s] ... ok {1} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface [0.122247s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_clean_up_instance [0.112598s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht [0.056245s] ... ok {2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht_groups [0.063839s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_324_third_party_admin_cannot_modify_portgroup [0.182361s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/portgroups/caf10db6-1e1f-4514-9edf-d0ead79dd6b4 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-337aad90-3147-42ca-b38e-c387fad7c142 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup caf10db6-1e1f-4514-9edf-d0ead79dd6b4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_clean_up_ramdisk [0.112710s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_with_old_conductor [0.079388s] ... ok {2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor [0.043042s] ... ok {2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor_not_found [0.063059s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_instance_boot_ramdisk [0.192714s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_conductor.DbConductorTestCase.test_get_inactive_conductor_ignore_online [0.055516s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_325_owner_admin_can_delete_portgroup [0.238481s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-71003a97-1e00-4cbb-a6e0-102550765026 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_with_online_true [0.090493s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_instance_local_or_whole_disk_image [0.137421s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_conductor.DbConductorTestCase.test_get_offline_conductors [0.057785s] ... ok {2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors_with_sqlite [0.072246s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_326_owner_manager_can_delete_portgroup [0.220264s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-9ae8a4bd-9cf4-4f50-8a6a-a763750e784a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_online_conductors [0.073359s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_instance_partition_image [0.161977s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_conductor.DbConductorTestCase.test_get_online_conductors_with_sqlite [0.061913s] ... ok {1} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface_instance_info_override [0.693822s] ... ok {1} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_interfaces [0.024915s] ... ok {1} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_network_interface_instance_info_override [0.028693s] ... ok {1} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface [0.027558s] ... ok {1} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface_default_from_conf [0.031044s] ... ok {2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_list_hardware_type_interfaces [0.180601s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_327_owner_member_cannot_delete_portgroup [0.308788s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-422cf5cb-3992-4346-a251-cd71bf4b4894 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_existing_fails [0.073190s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_glance_image [0.315795s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_node_update_dynamic_driver_set_interfaces [0.155542s] ... ok {2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces [0.099547s] ... ok {1} ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_none_network_interface [0.071878s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_fallback [0.046379s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername [0.028972s] ... ok {2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces_duplicate [0.097470s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername_node [0.023854s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_328_owner_service_can_delete_portgroup [0.278614s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f46fd0ee-1410-43da-a4e1-b633c3771025 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_one [0.031802s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_glance_image_cleaning [0.253702s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_driver_factory.DefaultInterfaceTestCase.test_calculated_with_two [0.023245s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_unsupported [0.019598s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_check_exception_IncompatibleInterface [0.020897s] ... ok {2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_override [0.115089s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_additional_defaults [0.023582s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_config [0.021736s] ... ok {1} ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_network_from_additional_defaults_hardware_type [0.027774s] ... ok {2} ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor [0.110670s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task [0.089581s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_conductor.DbConductorTestCase.test_touch_conductor_not_found [0.057479s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_329_lessee_admin_cannot_delete_portgroup [0.275197s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/c925e0ea-4779-4090-8175-500a2ff08f8d GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c7269214-5d3a-4707-a48f-ecc59172b042 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_middle_of_clean_step [0.280071s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_conductor.DbConductorTestCase.test_touch_conductor_offline [0.053661s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_bad_default [0.082712s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_conductor.DbConductorTestCase.test_touch_offline_conductor [0.055693s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_calculated_defaults [0.083453s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_conductor.DbConductorTestCase.test_unregister_conductor [0.061730s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_330_lessee_manager_cannot_delete_portgroup [0.230954s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/f5fcad8d-0452-48e1-9420-ee2adfddfc05 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-09dd721a-90c0-4a37-b62e-b08624eaed94 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_not_a_glance_image [0.205949s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_configured_defaults [0.107440s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_conductor.DbConductorTestCase.test_unregister_conductor_hardware_interfaces [0.082481s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_address [0.077967s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_fake [0.142927s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.167044s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_331_lessee_member_cannot_delete_portgroup [0.185037s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/c091109e-f39e-4601-bd52-a088754885dc GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4a02defc-3adb-42c4-bd3f-39992db78702 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_uuid [0.114506s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_fallback_defaults [0.151902s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.153856s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_create_port_with_description [0.115829s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_332_third_party_admin_cannot_delete_portgroup [0.158336s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/a4fcf57b-97d1-4d27-9efd-ed802ac8752b GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2f14a53c-ec34-4133-b6d8-d5462b0041ef X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup a4fcf57b-97d1-4d27-9efd-ed802ac8752b could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_destroy_port [0.081936s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_incorrect [0.137683s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.137520s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_333_service_cannot_delete_portgroup [0.150773s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/7f734275-63cd-4a79-bc74-458db4b28585 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-81b0596c-ccd0-4c1e-b075-8c4ca14ed248 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 7f734275-63cd-4a79-bc74-458db4b28585 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address [0.089756s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate [0.093934s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_instance_info_override [0.117547s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_by_address_filter_by_owner [0.086202s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_bios [0.104985s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_not_fake [0.112575s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_by_address_filter_by_owner_no_match [0.073012s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_inspection [0.074244s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces [0.068096s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_project [0.084592s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_inspection_missing [0.081600s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces_non_default [0.084749s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address_filter_by_project_no_match [0.075380s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_existing [0.071247s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_glance [0.099084s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_by_id [0.086188s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_missing [0.084925s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_rescue_interface [0.109298s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_name [0.145719s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_334_owner_reader_can_get_node_portgroups [0.628826s] ... 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-71fb8c2a-2d8d-473a-a2b9-39bb8bcc3872 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "address": "01:03:09:ff:01:01", "name": "magicfoo", "links": [{"href": "http://localhost/v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "self"}, {"href": "http://localhost/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc", "rel": "bookmark"}]}]} {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_webserver [0.221032s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_driver_factory.HardwareTypeLoadTestCase.test_invalid_storage_interface [0.118066s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_uuid [0.141400s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_webserver_exc [0.118331s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_335_lessee_reader_can_get_node_porgtroups [0.179661s] ... 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-e2b38f51-3e06-463f-8c93-f937b3326d74 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"portgroups": [{"uuid": "ee471cc2-6370-4956-9657-1114a78eaf88", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/ee471cc2-6370-4956-9657-1114a78eaf88", "rel": "self"}, {"href": "http://localhost/portgroups/ee471cc2-6370-4956-9657-1114a78eaf88", "rel": "bookmark"}]}]} {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_raid_interface_no_default [0.104455s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_rescue [0.120000s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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 [0.143949s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_rescue_interface_default_from_conf [0.099284s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_rescue_no_rescue_ramdisk [0.093585s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.114774s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface [0.075808s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_336_third_party_admin_cannot_get_portgroups [0.237847s] ... 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-f4e449f2-b5ce-4949-b2b7-82e8b08f0a03 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_get_properties [0.090537s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface_default_from_conf [0.075308s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_filter_by_node_project [0.123628s] ... ok {1} ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_none_storage_interface [0.067129s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_exist_ok [0.141514s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_sorted [0.101350s] ... ok {1} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_external_ip [0.087966s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_337_service_cannot_get_portgroups [0.279553s] ... 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-ef5ab28b-4602-4653-a631-fe3aef4e9350 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id [0.088585s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_ok [0.125911s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_publisher.LocalPublisherTestCase.test_publish_external_ip_node_override [0.085023s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_owner [0.106067s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok [0.105447s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_publisher.LocalPublisherTestCase.test_publish_local_copy [0.085889s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_owner_no_match [0.090236s] ... ok {1} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_publish_local_link [0.088473s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_338_owner_reader_can_list_ports [0.256561s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fed59e1d-8c7b-4e77-86cf-a60b4a81e2e3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "address": "00:00:00:00:00:01", "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}]}, {"uuid": "21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "address": "00:00:00:00:00:02", "links": [{"href": "http://localhost/v1/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "self"}, {"href": "http://localhost/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "bookmark"}]}, {"uuid": "553fd719-9483-44e4-8b9f-adb17e67b28c", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/553fd719-9483-44e4-8b9f-adb17e67b28c", "rel": "self"}, {"href": "http://localhost/ports/553fd719-9483-44e4-8b9f-adb17e67b28c", "rel": "bookmark"}]}]} {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_project [0.097051s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_local_gb_zero [0.153118s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_publisher.LocalPublisherTestCase.test_publish_local_link_no_restorecon [0.095713s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_project_no_match [0.094696s] ... ok {1} ironic.tests.unit.common.test_image_publisher.LocalPublisherTestCase.test_unpublish_local [0.071946s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_power_off [0.128112s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_that_does_not_exist [0.076192s] ... ok {1} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy [0.070604s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_339_owner_service_can_list_ports [0.243882s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e1b440ea-15d7-4b06-b911-0237c328aea7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "address": "00:00:00:00:00:01", "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}]}, {"uuid": "21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "address": "00:00:00:00:00:02", "links": [{"href": "http://localhost/v1/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "self"}, {"href": "http://localhost/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "bookmark"}]}, {"uuid": "b49e34a9-2ed8-4b08-b893-334f7f343199", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/b49e34a9-2ed8-4b08-b893-334f7f343199", "rel": "self"}, {"href": "http://localhost/ports/b49e34a9-2ed8-4b08-b893-334f7f343199", "rel": "bookmark"}]}]} {1} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy_fail [0.055082s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id [0.073185s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen10 [0.129831s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.FileImageServiceTestCase.test_download_hard_link [0.065184s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_owner [0.087545s] ... ok {1} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_symlink [0.069410s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_owner_no_match [0.086526s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_340_lessee_reader_can_list_ports [0.241081s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-90ea8e94-2542-4833-b623-a4f46ccbf078 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "046d97e3-abbd-4741-afb0-152938f6b42d", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/046d97e3-abbd-4741-afb0-152938f6b42d", "rel": "self"}, {"href": "http://localhost/ports/046d97e3-abbd-4741-afb0-152938f6b42d", "rel": "bookmark"}]}]} {1} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_show [0.058226s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen8 [0.240139s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.FileImageServiceTestCase.test_validate_href [0.078610s] ... ok {1} ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href_path_not_found_or_not_file [0.023351s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_project [0.160102s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test__create_root_fs [0.088294s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_filter_by_node_project_no_match [0.123399s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_validate [0.208251s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_images.FsImageTestCase.test__generate_grub_cfg [0.090255s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_341_third_party_admin_cannot_list_ports [0.338858s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c0054888-cade-4ec6-9e54-ff77e984938e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {1} ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_isolinux_cfg [0.069348s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_that_does_not_exist [0.120855s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files [0.048371s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fail_no_esp_imageimg [0.057454s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_shard_no_match [0.103660s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test__get_deploy_iso_files_fail_with_ExecutionError [0.035365s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates [0.236720s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_images.FsImageTestCase.test__get_deploy_iso_files_fails_no_grub_cfg [0.060171s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios [0.059695s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_342_owner_reader_can_read_port [0.299621s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d1a14245-f983-4827-bb3a-b3e21e67cc5a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "created_at": "2025-05-07T23:00:03.340127+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} {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_shard_with_match_multi [0.167298s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios_with_no_boot_mode [0.081499s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_clear_flag [0.238868s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso [0.058398s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_shard_with_match_single [0.134876s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_deploy_iso_for_hrefs [0.056305s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image [0.051015s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port [0.151586s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_esp_image_for_hrefs [0.071813s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_343_owner_service_can_read_port [0.340476s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a1d603be-6d6a-4a99-89fe-7974b993ea72 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "created_at": "2025-05-07T23:00:03.670893+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} {3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_ilo_operation_error [0.207704s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_images.FsImageTestCase.test_create_esp_image_for_uefi_with_deploy_iso [0.086759s] ... ok {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_duplicated_address [0.136594s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_for_uefi_with_esp_image [0.058585s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_mkisofs_fails [0.054866s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_clear_ca_certificates_ilo_operation_not_supported [0.213191s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_344_lessee_reader_can_read_port [0.324588s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/15ee936e-845a-4d1f-a05b-482a0b3bc0ef WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-927a0c27-fa69-4534-9ed7-49ebc20029d5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "15ee936e-845a-4d1f-a05b-482a0b3bc0ef", "created_at": "2025-05-07T23:00:04.052202+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/15ee936e-845a-4d1f-a05b-482a0b3bc0ef", "rel": "self"}, {"href": "http://localhost/ports/15ee936e-845a-4d1f-a05b-482a0b3bc0ef", "rel": "bookmark"}], "portgroup_uuid": null} {3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_completed [0.188478s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_345_third_party_admin_cannot_read_port [0.172336s] ... 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-d66bed71-92c8-462f-92d7-6c9346df4f1f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port abfd8dbb-1732-449a-b760-2224035c6b99 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_esp_image_uefi_rootfs_fails [0.542485s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_346_owner_admin_can_add_ports [0.213570s] ... 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-df28d507-56df-48bb-a073-e0eec6bad515 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_mkisofs_fails [0.048739s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd [0.337947s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_images.FsImageTestCase.test_create_isolinux_image_bios_rootfs_fails [0.041418s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios [0.067110s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_347_owner_manager_can_add_ports [0.169620s] ... 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-28bc6f92-d7b8-4be0-9aaf-be3bcbf3cff1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_uuid [0.791213s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_ilo_error [0.119736s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_images.FsImageTestCase.test_create_isolinux_image_for_bios_conf_ldlinux [0.048165s] ... ok {2} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_default_dhcp [0.061521s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_default_ldlinux [0.059455s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_erase_pattern_zero [0.132393s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestDHCPFactory.test_dhcp_some_error [0.089196s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_inject_files [0.065334s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_348_owner_admin_cannot_add_ports_to_other_nodes [0.182032s] ... 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-dc3db774-49dc-4ad1-8f0f-6942899b3fec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_only_one_dhcp [0.051592s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image [0.058059s] ... ok {2} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_bad_dhcp [0.047311s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_dd_fails [0.041743s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_device_type_erase_pattern [0.117760s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestDHCPFactory.test_set_neutron_dhcp [0.057905s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_mkfs_fails [0.092325s] ... ok {2} ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_none_dhcp [0.064677s] ... ok {3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_erase_pattern [0.130973s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_349_owner_manager_cannot_add_ports_to_other_nodes [0.239270s] ... 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-b73046b5-457e-4625-a615-b5f17d993420 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_default_all [0.069766s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_no_such_prop [0.071282s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy [0.132254s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.Ilo5ManagementTestCase.test_erase_devices_hdd_with_invalid_format_erase_pattern [0.125779s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_images.FsImageTestCase.test_get_glance_image_properties_with_prop_subset [0.051617s] ... ok {1} ironic.tests.unit.common.test_images.FsImageTestCase.test_get_temp_url_for_glance_image [0.071679s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy_iwdi [0.124882s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_350_owner_service_cannot_add_ports_to_other_nodes [0.230307s] ... 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-87661dcb-cf63-4d59-b84f-d4aca999f95c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.ilo.test_management.Ilo5ManagementTestCase.test_erase_devices_ssd [0.171514s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_inspection_rule.TestOperators.test_is_true_false_operators_edge_cases [0.139903s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.156143s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_351_owner_member_cannot_add_port [0.240913s] ... 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-8e4346b8-87de-416c-a115-d98f4e16e676 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_inspection_rule.TestOperators.test_oneofoperator_edge_cases [0.132085s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.Ilo5ManagementTestCase.test_erase_devices_ssd_when_hdd_done [0.225829s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_inspection_rule.TestOperators.test_operator_exceptions [0.094790s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_deploy [0.189403s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.Ilo5ManagementTestCase.test_erase_devices_when_no_drive_available [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( {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_352_lessee_admin_cannot_add_port [0.186192s] ... 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-57dcef5b-5f04-48f4-9b47-872078cbe17c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_inspection_rule.TestOperators.test_operator_with_loop [0.133740s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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 [0.163352s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.Ilo5ManagementTestCase.test_one_button_secure_erase [0.131412s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_inspection_rule.TestOperators.test_rule_operators [0.150991s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.142490s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.Ilo5ManagementTestCase.test_one_button_secure_erase_ilo_error [0.139154s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_353_lessee_manager_cannot_add_port [0.258154s] ... 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-6537076a-638d-4a8a-9b08-a2a7d392619b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_failure [0.063482s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_failure_with_foreign_class [0.071322s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_354_lessee_member_cannot_add_port [0.104776s] ... 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-6d3a20a7-8d40-44cc-a7e7-a43eaa103e34 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps [0.121458s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_cpu_capabilities.CPUCapabilitiesTestCase.test_cpu_capabilities [0.131189s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_json_rpc.TestClient.test_call_failure_with_version_and_cap [0.073760s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_ipv4_success [0.064020s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps_priority [0.125548s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_355_third_party_admin_cannot_add_port [0.132829s] ... 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-9c5cc67e-8416-49b8-b73e-8c9114e23aff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_ipv6_success [0.061901s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.AddPortsTestCase.test_add_ports [0.155098s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_get_properties [0.077129s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_356_service_can_add_port [0.124632s] ... 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-623a5c8e-2154-45a3-b873-e2e85b1f5864 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_ipv6_success_rfc2732 [0.093744s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_success [0.064445s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.AddPortsTestCase.test_duplicates [0.150487s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_prepare [0.176501s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_json_rpc.TestClient.test_call_success_with_version [0.050350s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_357_service_cannot_add_ports_to_other_project [0.189696s] ... 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-fc1a4a97-249e-4950-8729-f82597f0f3ea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_json_rpc.TestClient.test_call_success_with_version_and_cap [0.075327s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.test_agent.AbortInspectionTestCase.test_cleanup_failed [0.157809s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_json_rpc.TestClient.test_call_unexpected_failure [0.057500s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning [0.140117s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_json_rpc.TestClient.test_call_with_ssl [0.069082s] ... ok {3} ironic.tests.unit.drivers.modules.inspector.test_agent.AbortInspectionTestCase.test_success [0.127963s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_json_rpc.TestClient.test_can_send_version [0.062608s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_358_owner_admin_can_modify_port [0.227311s] ... 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-80482ce4-1455-4c73-aeb5-72d169614e74 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_callback_no_steps [0.146169s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_json_rpc.TestClient.test_cast_failure [0.088331s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__cleanup_boot_from_volume [0.147060s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_with_smartnic_port [0.116514s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_json_rpc.TestClient.test_cast_success [0.102083s] ... ok {1} ironic.tests.unit.common.test_json_rpc.TestClient.test_cast_success_with_version [0.062625s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_with_smartnic_port [0.133605s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_apply_error [0.171821s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_json_rpc.TestClient.test_mask_secrets [0.064487s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_359_owner_manager_can_modify_port [0.334271s] ... 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-2559d47f-7b53-4cf3-b4a5-c3a837f35ff9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down [0.097661s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_mdns.ParseEndpointTestCase.test_resolve [0.059684s] ... ok {1} ironic.tests.unit.common.test_mdns.ParseEndpointTestCase.test_simple [0.049617s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_agent_force_reboot [0.107948s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_mdns.ParseEndpointTestCase.test_simple_https [0.065522s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_fc [0.203724s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_mdns.ParseEndpointTestCase.test_with_path_and_port [0.075882s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_agent_soft_poweroff_retry [0.091683s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.121755s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_360_owner_service_can_modify_port [0.384529s] ... 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-a8072c84-f732-42b6-9fd8-1cc2c926cd6d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning_with_smartnic_port [0.088147s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_validate [0.052432s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi [0.363907s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_mdns.RegisterServiceTestCase.test_failure [0.309931s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_write_image [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.ansible.test_deploy.TestAnsibleMethods.test__calculate_memory_req [0.038071s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_clean_steps [0.049176s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_configdrive_path [0.048333s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_361_owner_member_cannot_modify_port [0.361698s] ... 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-8c203779-7c27-4451-a4dd-a92a656d1c89 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_node_ip [0.046171s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_python_interpreter [0.029458s] ... ok {1} ironic.tests.unit.common.test_mdns.RegisterServiceTestCase.test_ok [0.288115s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_chap [0.336178s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info [0.075341s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_defaults [0.064669s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_362_lessee_admin_cannot_modify_port [0.237548s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/a1c3b36f-1053-496b-842b-63024764b821 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d69eb6f5-5c88-46bd-9b90-0348e40a775c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_no_portal_port [0.158124s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_no_playbook [0.104571s] ... ok {1} ironic.tests.unit.common.test_mdns.RegisterServiceTestCase.test_with_interfaces [0.282582s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_all_gpt [0.105057s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_363_lessee_manager_cannot_modify_port [0.186137s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/385dca9a-9d21-40bb-bc6a-697b03b6c9ac WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5fd71665-7c97-48b4-a62a-b88c4fed928a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_root_msdos [0.062096s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_multi_lan_ports [0.229577s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints [0.113366s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance [0.165795s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_fail_advanced [0.112604s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_364_lessee_member_cannot_modify_port [0.272303s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/b4ead885-f58b-40b4-a084-c82f12201519 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1142e673-7473-4648-aba4-4265493ca372 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_iinfo [0.098780s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance_error [0.178520s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_override [0.101317s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_extra_vars [0.055508s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_365_third_party_admin_cannot_modify_port [0.299318s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/ports/ae401cd7-7eb8-4e75-9687-9b0a34ede32f WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6496ef17-9bc0-4dfe-978c-efc5b3a12f4f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port ae401cd7-7eb8-4e75-9687-9b0a34ede32f could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables [0.131152s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_instance [0.259661s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_366_owner_admin_can_delete_port [0.181375s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f843bd7a-278b-4d18-ab2c-b47bfeb5a6fd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_mdns.RegisterServiceTestCase.test_with_params [0.867125s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_ramdisk_skip [0.134031s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_file [0.170536s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_mdns.RegisterServiceTestCase.test_with_race [0.131747s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_367_owner_manager_can_delete_port [0.205661s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-5dba76f9-4823-4c86-a681-a4fb0345a36d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_json [0.155925s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_invalid_physical_id_in_lan_port [0.209906s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_excludes_None [0.116435s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_url [0.162295s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_multiple_ports [0.132346s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_368_owner_service_can_delete_port [0.212976s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-623225bc-b4f4-4661-a785-0ee1479b12ea X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi [0.223902s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_no_ports [0.115306s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_insecure_activated [0.185309s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id [0.127656s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_369_owner_member_cannot_delete_port [0.238567s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9de6f7ca-1a2d-47c5-9e44-3bebb74d9109 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_invalid_netmask [0.227456s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_root_device_hints [0.152439s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id_no_such_portgroup [0.101687s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook [0.095791s] ... ok {1} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_cleaning [0.113645s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_370_lessee_admin_cannot_delete_port [0.216115s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/dd6ebb64-8c6b-4123-8b12-d79ca2d5bbfb GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-369efbe9-a0bb-45c8-8acd-ada8398349ec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_override [0.095597s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_ip [0.208539s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_python3 [0.116829s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_371_lessee_manager_cannot_delete_port [0.162317s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/4e63a4b5-844b-4fbd-89c9-ac3b4a0dbdd1 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b24dee1c-2ee9-4e40-b2f7-e9f3f831dd24 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_provisioning [0.211469s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_iqn [0.162851s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_debug [0.112151s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_372_lessee_member_cannot_delete_port [0.172166s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/34625c24-9413-4017-aff8-32c2b0a679c1 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7e3faadf-e1f4-4c10-a86b-a62018ed3b5c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_netmask [0.155449s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_rescuing [0.199267s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_nodebug [0.134422s] ... ok {1} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_no_ports_no_portgroups [0.107424s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_fail [0.127906s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_373_third_party_admin_cannot_delete_port [0.193855s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/3ecf0878-6d63-482e-b00a-e3f77a40ff80 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-eac4e033-0a19-41b7-b2e1-e5abc640cbc4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 3ecf0878-6d63-482e-b00a-e3f77a40ff80 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_physical_id [0.191849s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_int_info [0.111564s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps [0.085288s] ... ok {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_missing [0.059763s] ... ok {1} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_portgroup_int_info [0.121452s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_names_not_unique [0.077679s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_large_netmask [0.218098s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_374_owner_reader_can_get_node_ports [0.249515s] ... 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-51b84dfa-43d8-4a57-983d-7d4c50cc4786 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "address": "00:00:00:00:00:01", "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}]}, {"uuid": "21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "address": "00:00:00:00:00:02", "links": [{"href": "http://localhost/v1/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "self"}, {"href": "http://localhost/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "bookmark"}]}]} {1} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_int_info [0.098089s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IloBootCommonMethodsTestCase.test_parse_driver_info_bootloader_none [0.085308s] ... ok {1} ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_ports_int_info [0.085527s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_too_small_netmask [0.270279s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_375_owner_service_can_get_node_ports [0.276491s] ... 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-53aa8c77-f334-4cba-9e95-72cbdc67d09a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "address": "00:00:00:00:00:01", "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}]}, {"uuid": "21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "address": "00:00:00:00:00:02", "links": [{"href": "http://localhost/v1/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "self"}, {"href": "http://localhost/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "bookmark"}]}]} {1} ironic.tests.unit.common.test_network.TestNetwork.test_remove_vifs_from_node [0.159563s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_no_physical_id_in_lan_port [0.307161s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_network.TestRemoveVifsTestCase.test_remove_vifs_from_node_failure [0.348285s] ... ok 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.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_duplicate [0.075516s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_376_lessee_reader_can_get_node_port [0.507358s] ... 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-6abaea2a-dfc3-41ff-bf42-ece5545b4457 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": [{"uuid": "a4e1c7c9-049f-4e0b-b052-d62fa143a501", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/a4e1c7c9-049f-4e0b-b052-d62fa143a501", "rel": "self"}, {"href": "http://localhost/ports/a4e1c7c9-049f-4e0b-b052-d62fa143a501", "rel": "bookmark"}]}]} {1} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_failure [0.078166s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_avoid_repeatedly_resume_cleaning [0.229527s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_missing [0.038374s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_completing_status [0.079981s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_name [0.049718s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_bootloader_none_by_arch [0.859856s] ... ok {1} ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_uuid [0.042898s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_other_clean_state [0.085488s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy [0.086289s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_clean_fail [0.084952s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_config [0.091199s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_377_third_party_admin_cannot_get_ports [0.289480s] ... 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-ccc70e10-bc88-470d-87d1-6ce2c2adce68 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_complete_cleaning [0.107359s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_config_by_arch [0.080418s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_deprecated [0.087617s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_378_service_cannot_get_ports [0.190434s] ... 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-58a4046f-12fb-46b3-9fba-bac97eabee8c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_iso [0.074160s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_iso_deprecated [0.073057s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_379_owner_reader_can_get_ports_by_portgroup [0.179704s] ... 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-2d7fd36b-e1ec-4e9f-96df-ed1ee4120027 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_exc [0.093235s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue [0.105837s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_380_owner_service_cam_get_ports_by_portgroup [0.218364s] ... 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-d1140fe1-435a-4565-b043-fa0a020bfd24 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue_config [0.113310s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_rescue_iso [0.093656s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_381_lessee_reader_can_get_ports_by_portgroup [0.190915s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/07e409a3-6291-4950-87fc-d4c60300d89f/ports WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ebfeb85f-ad73-47ee-ab48-c045b8f4fa7e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"ports": []} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance [0.186336s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_with_fgi_status_none [0.877025s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_382_third_party_admin_cannot_get_ports_by_portgroup [0.238436s] ... 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-14e934d0-bfcc-4db0-9ebb-e9944f690ecc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 5810f41c-6585-41fc-b9c9-a94f50d421b5 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_without_raid_config [0.158300s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume [0.177691s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_fgi_status [0.093790s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_383_service_cannot_get_ports_by_portgroup [0.176340s] ... 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-b5100b66-2897-4c6d-b75d-46335b0e5634 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 5810f41c-6585-41fc-b9c9-a94f50d421b5 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.123836s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IloPXEBootTestCase.test_prepare_instance [0.073071s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_input [0.143211s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_anaconda_cleaning [0.062683s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_384_owner_reader_can_list_volume_connectors [0.193823s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4ccf05b9-ea2d-4a67-8bd6-1fc8276c6709 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "65ea0296-219b-4635-b0c8-a6e055da878d", "connector_id": "iqn.2012-06.org.openstack.magic", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/65ea0296-219b-4635-b0c8-a6e055da878d", "rel": "self"}, {"href": "http://localhost/volume/connectors/65ea0296-219b-4635-b0c8-a6e055da878d", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}, {"uuid": "108c929a-c66e-494a-9b20-2649c50c4a5f", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/108c929a-c66e-494a-9b20-2649c50c4a5f", "rel": "self"}, {"href": "http://localhost/volume/connectors/108c929a-c66e-494a-9b20-2649c50c4a5f", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {3} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_node [0.080811s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_raid_config [0.095758s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_anaconda_deploying [0.158875s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_385_lessee_reader_can_list_volume_connectors [0.184657s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-20ccb072-b063-46c9-93da-6f4976a70f3a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "1b0c7d5c-7c57-41cb-8050-c999ca381d8a", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1b0c7d5c-7c57-41cb-8050-c999ca381d8a", "rel": "self"}, {"href": "http://localhost/volume/connectors/1b0c7d5c-7c57-41cb-8050-c999ca381d8a", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_none_raid_adapter_profile [0.112622s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_anaconda_rescuing [0.115089s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.116981s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_386_third_party_admin_cannot_get_connector_list [0.193579s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-39550f3a-1a93-4fea-b1b0-cb3526b35adb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": []} {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_outside_list [0.074261s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_bios [0.157442s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.073878s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_387_owner_admin_can_post_volume_connector [0.176562s] ... 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/bde3a459-24e8-4ce3-a8a3-5a97d7c05970 Openstack-Request-Id: req-e1a9d36f-25f8-4368-839e-da1d0e69d1e8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "bde3a459-24e8-4ce3-a8a3-5a97d7c05970", "created_at": "2025-05-07T23:00:13.868212+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/bde3a459-24e8-4ce3-a8a3-5a97d7c05970", "rel": "self"}, {"href": "http://localhost/volume/connectors/bde3a459-24e8-4ce3-a8a3-5a97d7c05970", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {1} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_auth_from_config [2.133637s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__commit_raid_config_with_logical_drives [0.085550s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_boot_from_volume [0.157731s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_0 [0.051974s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_1 [0.060010s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_cleaning [0.146698s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_10 [0.077025s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_388_owner_manager_can_post_volume_connector [0.252022s] ... 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/3d23d1d7-aced-4124-b67d-a1b42cab5c6c Openstack-Request-Id: req-1aa5bb3a-f19e-4422-affd-79e057026073 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "3d23d1d7-aced-4124-b67d-a1b42cab5c6c", "created_at": "2025-05-07T23:00:14.106871+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/3d23d1d7-aced-4124-b67d-a1b42cab5c6c", "rel": "self"}, {"href": "http://localhost/volume/connectors/3d23d1d7-aced-4124-b67d-a1b42cab5c6c", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_5 [0.073643s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_deploying [0.101204s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_50 [0.101766s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_rescuing [0.129422s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_389_owner_service_can_post_volume_connector [0.210280s] ... 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/00478d6a-3d38-4253-b706-c692de5cbff5 Openstack-Request-Id: req-c9e9c02b-fcb2-49b6-a458-2ea093432f80 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "00478d6a-3d38-4253-b706-c692de5cbff5", "created_at": "2025-05-07T23:00:14.327879+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/00478d6a-3d38-4253-b706-c692de5cbff5", "rel": "self"}, {"href": "http://localhost/volume/connectors/00478d6a-3d38-4253-b706-c692de5cbff5", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_6 [0.081135s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_with_physical_disk [0.079036s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_with_boot_iso [0.163217s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.118414s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_390_lessee_admin_cannot_post_volume_connector [0.233881s] ... 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-443690cb-6770-42d3-92c2-3768b0c17710 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume [0.111892s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume_bios [0.105447s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_duplicated_physical_disks [0.182567s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_391_lessee_manager_cannot_post_volume_connector [0.200755s] ... 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-ca23dc89-abc8-49d2-aae0-ac6c66ed0089 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_not_enough_valid_disks [0.134772s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_deleting [0.151558s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IloVirtualMediaBootTestCase.test_clean_up_instance_rescuing [0.129770s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_392_third_party_admin_cannot_post_volume_connector [0.225029s] ... 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-3f1eacbb-d1f6-438f-b773-1459bc0544a6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_incorrect_valid_disks [0.158197s] ... ok {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_insufficient [0.075617s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_ramdisk [0.107667s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_not_enough_disks [0.090799s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume [0.126894s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_393_service_admin_cannot_post_volume_connector [0.261485s] ... 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-3d9dacb5-0ec5-45ff-ac3d-287b29b6a478 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_disks_1 [0.117549s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume_bios [0.092660s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IloVirtualMediaBootTestCase.test_prepare_instance_boot_ramdisk [0.044779s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IloVirtualMediaBootTestCase.test_prepare_instance_partition_image [0.049039s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_slots_2 [0.151558s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image [0.044520s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_394_owner_reader_can_get_volume_connector [0.274274s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/ef2538a3-4fb7-4d0b-b997-c8294caeaf5c WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b40c34a3-99f6-4456-b3db-756f9c20dc5c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "ef2538a3-4fb7-4d0b-b997-c8294caeaf5c", "created_at": "2025-05-07T23:00:15.441087+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/ef2538a3-4fb7-4d0b-b997-c8294caeaf5c", "rel": "self"}, {"href": "http://localhost/volume/connectors/ef2538a3-4fb7-4d0b-b997-c8294caeaf5c", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image [0.071073s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.151714s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning [0.081802s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestNeutronVifPortIDMixin.test_port_changed_address [0.161392s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IloVirtualMediaBootTestCase.test_prepare_ramdisk_in_takeover [0.170223s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_noauth [1.973132s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_395_lessee_reader_can_get_volume_connector [0.333090s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/73a0bc56-81d4-45e4-971d-6c4525629523 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-94294b50-1132-4ab5-8c6d-461a38d64fd9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "73a0bc56-81d4-45e4-971d-6c4525629523", "created_at": "2025-05-07T23:00:15.735015+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/73a0bc56-81d4-45e4-971d-6c4525629523", "rel": "self"}, {"href": "http://localhost/volume/connectors/73a0bc56-81d4-45e4-971d-6c4525629523", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image [0.098241s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestNeutronVifPortIDMixin.test_port_changed_address_VIF_MAC_update_fail [0.184043s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning [0.095986s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_iso [0.073689s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_396_third_party_admin_cannot_get_volume_connector [0.254059s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/69862b13-f6da-4ca9-a2b8-3b9c40ec58bd WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a1905a79-d878-41bf-9ed1-5912a7a5849f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 69862b13-f6da-4ca9-a2b8-3b9c40ec58bd could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_no_vif_id [0.176718s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestNeutronVifPortIDMixin.test_port_changed_client_id ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994 {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_fail ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994 {3} 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 {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_extra_add_new_key ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994 {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_message_format_failure ... SKIPPED: https://bugs.launchpad.net/ironic/+bug/2024994 {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_glance_image [0.117159s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image [0.105028s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IloVirtualMediaBootTestCase.test_validate [0.042633s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_397_lessee_member_cannot_patch_volume_connectors_extra [0.235813s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/b67a14d8-28d3-4347-ac0b-71e512dd943b WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cc04a3d9-c24c-4302-b25c-0b7ad31a4988 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_boot_from_volume [0.052567s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_noportgroup [0.299447s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_inspection [0.056766s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_inspection_missing [0.047753s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_glance [0.085232s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_webserver [0.056164s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_398_owner_admin_can_patch_volume_connectors [0.285269s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/2d813f2f-0ab6-4b0f-a139-749ae1cb4ad8 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-19c20fd1-c44a-4dbf-9e5c-110ad1b82896 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_ramdisk_deploy_webserver_exc [0.057707s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IloVirtualMediaBootTestCase.test_validate_rescue [0.060649s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_nostandalone_ports [0.403721s] ... ok 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_399_owner_manager_can_patch_volume_connectors [0.314387s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/0c7b6da5-8076-48bc-bbe5-2289116e5eff WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-2a9c2f14-80a4-4233-be5c-397c3d129b73 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_deprecated [0.381010s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_context [1.344503s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk [0.049867s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_standalone_ports [0.380501s] ... ok 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_400_lessee_admin_cannot_patch_volume_connectors [0.295368s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/b131c4bc-34bb-4990-9590-2e21a980f87a WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b9b71742-b995-4ac5-9194-7be448f79972 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance [0.101647s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.103126s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.069251s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_prepare_instance [0.045127s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_401_lessee_manager_can_patch_volume_connectors [0.269946s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/3e5980de-9106-42aa-a095-bb3a0d528d4c WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b478ed9b-3dac-4a47-b71e-cbd87ad7f66f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_noportgroup [0.313665s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_anaconda_cleaning [0.059852s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_prepare_instance_anaconda_deploying [0.066613s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_prepare_instance_anaconda_rescuing [0.103746s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_nostandalone_ports [0.274096s] ... ok 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_402_owner_member_can_patch_volume_connectors [0.313728s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/bc4e82a6-7b5d-4cc3-ae7a-c08c917bcbc2 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1a2109ae-d348-4955-a11c-ebb7498191ae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_bios [0.136466s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_standalone_ports [0.115527s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_noportgroup [0.113039s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_boot_from_volume [0.186246s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_403_lessee_member_cannot_patch_volume_connectors [0.255850s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/ed331e7c-e4cb-4ae8-964e-4cce37d72512 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c2d1e33c-35fc-4ff6-8975-8a64be6c3c16 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_nostandalone_ports [0.119261s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_cleaning [0.155377s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_standalone_ports [0.138878s] ... ok 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_404_third_party_admin_cannot_patch_volume_connectors [0.252265s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/d490d215-5b97-40e4-b61f-c0e9baef1b3f WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-030aa506-0a6a-4993-b8c4-ed1c68265006 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector d490d215-5b97-40e4-b61f-c0e9baef1b3f could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_noportgroup [0.130267s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_deploying [0.198277s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_405_owner_admin_can_delete_volume_connectors [0.257479s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/d54e73f5-9a34-4deb-b82c-b111d84901fe GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-07e44a5f-bd86-4dc6-9d07-0183174b5095 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_rescuing [0.180966s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_nostandalone_ports [0.211528s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_copies_file_to_target [0.098435s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_gets_invoked_for_file_based_firmware [0.071113s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_406_owner_manager_can_delete_volume_connectors [0.206228s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/e3f06b8a-7849-413a-995b-9cbe37d7280c GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-644f6694-801d-4e34-8cee-efef3bd629e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_407_owner_service_can_delete_volume_connectors [0.104739s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/55b67708-721d-4df2-a999-b2de065ce2d9 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-76734950-c863-40b2-bf31-df44518e9cd1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_downloads_the_fw_file [0.120598s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_standalone_ports [0.306711s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_gets_invoked_for_http_based_firmware [0.068549s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_408_lessee_admin_can_delete_volume_connectors [0.135116s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/4532783f-764f-4794-a728-55c892c387e0 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-3ac7fb42-ae19-4752-8184-e1bcc1ecb461 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address [0.142101s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_calls__download_http_based_fw_to [0.099447s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_fail [0.100334s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_creates_temp_url [0.172385s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_409_lessee_manager_can_delete_volume_connectors [0.229857s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/a8336502-de5f-465a-b625-b8b51dc20fa6 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1d8d6afc-c66f-40d7-a762-ac43fc5da565 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_no_vif [0.113614s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_gets_invoked_for_swift_based_firmware [0.075544s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_nopxe_ports [0.130092s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_calls_process_firmware_image [0.111224s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_410_third_party_admin_cannot_delete_volume_connector [0.198361s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/78b59e26-1b92-4f7f-8a2d-f5381cd10b18 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-df850347-1408-42d8-804d-2b9385677826 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 78b59e26-1b92-4f7f-8a2d-f5381cd10b18 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_pxe_ports [0.116904s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_doesnt_upload_firmware [0.119778s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_without_token [2.474405s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_411_service_cannot_delete_volume_connector [0.165162s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/67107f07-1047-444a-a134-fab89e166000 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-536373a4-7e45-4b29-8594-ffea35081a3f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 67107f07-1047-444a-a134-fab89e166000 could not be found.\", \"debuginfo\": null}"} {2} 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.137978s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_pxe_ports_exc [0.224444s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_412_owner_reader_can_get_targets [0.209919s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-89dc5291-aaa8-4a00-b339-1e9430ab798f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "a265e2f0-e97f-4177-b1c0-8298add53086", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "self"}, {"href": "http://localhost/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}, {"uuid": "94d84bf6-0507-45e6-a38b-df2ef38a1ac4", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/94d84bf6-0507-45e6-a38b-df2ef38a1ac4", "rel": "self"}, {"href": "http://localhost/volume/targets/94d84bf6-0507-45e6-a38b-df2ef38a1ac4", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_swift [0.148255s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_webserver [0.141531s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_nopxe_ports [0.246188s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_swift [0.137719s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_413_lesse_reader_can_get_targets [0.333904s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f814feea-fe43-41aa-8cf1-2e517c03239c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "281c35de-4154-4fe2-a0c5-4c807f03af6f", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/281c35de-4154-4fe2-a0c5-4c807f03af6f", "rel": "self"}, {"href": "http://localhost/volume/targets/281c35de-4154-4fe2-a0c5-4c807f03af6f", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_pxe_ports [0.246179s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_webserver [0.161236s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_414_third_party_admin_cannot_get_target_list [0.199924s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0a2c6477-6efc-4c10-b817-6df75555c870 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": []} {2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_file_based_me [0.107079s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_remove_address [0.182121s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_firmware_processor.FirmwareProcessorTestCase.test__remove_swift_based_me [0.070136s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_noports [0.098201s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__add_ip_addresses_for_ipv6_stateful [0.970239s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_415_owner_reader_can_get_volume_target [0.220111s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/bca904fe-2b36-4a47-b6ba-24d192662084 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e9950cf2-1727-43c2-82c4-81786db212eb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "bca904fe-2b36-4a47-b6ba-24d192662084", "created_at": "2025-05-07T23:00:20.568531+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/bca904fe-2b36-4a47-b6ba-24d192662084", "rel": "self"}, {"href": "http://localhost/volume/targets/bca904fe-2b36-4a47-b6ba-24d192662084", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv4 [0.029172s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv6 [0.061808s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_nopxe_ports [0.117090s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_all_ports_fail [0.116093s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_416_lessee_reader_can_get_volume_target [0.261031s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/4eb022bc-88ab-400d-8c4e-e6ad7ff2101e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a630fb80-4536-46a8-9c22-c9fc1b1bf07c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "4eb022bc-88ab-400d-8c4e-e6ad7ff2101e", "created_at": "2025-05-07T23:00:20.786865+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/4eb022bc-88ab-400d-8c4e-e6ad7ff2101e", "rel": "self"}, {"href": "http://localhost/volume/targets/4eb022bc-88ab-400d-8c4e-e6ad7ff2101e", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_create_some_ports_fail [0.076136s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_port [0.070121s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_pxe_enabled_ports [0.068999s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network [0.087090s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_firmware_processor.FirmwareProcessorTestCase.test__remove_webserver_based_me [0.609350s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components [0.035485s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_all_ports [0.072064s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components_fails [0.063088s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_pxe_ports [0.554055s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_all_ports_via_not_pxe [0.088023s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_firmware_processor.FirmwareProcessorTestCase.test_fw_img_loc_sets_these_attributes [0.039154s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_sets_parsed_url_attrib_of_fw_processor [0.034273s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_instance_uuid [0.055412s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_throws_exception_with_invalid_firmware_url [0.043604s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_nopxe_ports [0.119370s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_with_sg [0.067049s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info [0.040773s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_empty_parameter [0.034016s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_with_client_id_to_network [0.063645s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_pxe_ports [0.109762s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_invalid_component [0.045385s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_missing_parameter [0.033593s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_smartnic_port_to_network [0.082802s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum [0.042764s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_local_group_information [0.053066s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestNeutronVifPortIDMixin.test_vif_attach [0.138901s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_invalid_component [0.046860s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_neutron_port_data [0.056732s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_with_component [0.032499s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_neutron_port_data_ipv6 [0.044749s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node [0.110165s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_node_portmap [0.064095s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_417_third_party_admin_cannot_get_volume_target [0.935568s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/a32f51a7-7055-4670-ba27-f71574b59d11 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-19b903b1-bedc-4115-b583-6fc95996fa97 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target a32f51a7-7055-4670-ba27-f71574b59d11 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_false [0.056623s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__download_fw_to [0.162890s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node_failure [0.109657s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_is_smartnic_port_true [0.054720s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_failure [0.099652s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_418_owner_admin_create_volume_target [0.166666s] ... 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/f5f2613a-af25-44d2-a617-dcc327ef7c9b Openstack-Request-Id: req-9ebcc953-7f4b-4f80-a5e0-7eb19ae075cb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f5f2613a-af25-44d2-a617-dcc327ef7c9b", "created_at": "2025-05-07T23:00:22.035774+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/f5f2613a-af25-44d2-a617-dcc327ef7c9b", "rel": "self"}, {"href": "http://localhost/volume/targets/f5f2613a-af25-44d2-a617-dcc327ef7c9b", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__extract_fw_from_file [0.164189s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports [0.109985s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestNeutronVifPortIDMixin.test_vif_attach_multiple_segment_mappings [0.109347s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_fail [0.099019s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_419_owner_service_create_volume_target [0.184704s] ... 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/0aecaeb6-1671-48da-ae5c-5a3080ebf6fe Openstack-Request-Id: req-19e17c58-c29d-4216-b118-983a3dc110f9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "0aecaeb6-1671-48da-ae5c-5a3080ebf6fe", "created_at": "2025-05-07T23:00:22.220737+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/0aecaeb6-1671-48da-ae5c-5a3080ebf6fe", "rel": "self"}, {"href": "http://localhost/volume/targets/0aecaeb6-1671-48da-ae5c-5a3080ebf6fe", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_no_address [0.112779s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_throws_error_if_checksum_validation_fails [0.171171s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_race [0.104778s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_physnet_inconsistent [0.113252s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_list_fail [0.095313s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_420_owner_manager_create_volume_target [0.159352s] ... 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/9aee83c9-6d4a-493c-a943-e385a466dc43 Openstack-Request-Id: req-c15d7349-6412-4c15-86a9-ddaa0af0bb96 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "9aee83c9-6d4a-493c-a943-e385a466dc43", "created_at": "2025-05-07T23:00:22.388979+00:00", "updated_at": null, "boot_index": 3, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/9aee83c9-6d4a-493c-a943-e385a466dc43", "rel": "self"}, {"href": "http://localhost/volume/targets/9aee83c9-6d4a-493c-a943-e385a466dc43", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_verifies_checksum_of_downloaded_fw_file [0.178153s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_invalid_update_mode [0.041823s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_update_port_exception [0.123015s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_smartnic_ports [0.108549s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_no_firmware_url [0.036642s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_421_lessee_admin_create_volume_target [0.161068s] ... 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/99c55c7f-701f-4445-9d70-dcd38a6ae9ad Openstack-Request-Id: req-da385428-6345-433e-abae-d56cf4b1243c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "99c55c7f-701f-4445-9d70-dcd38a6ae9ad", "created_at": "2025-05-07T23:00:22.559595+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/99c55c7f-701f-4445-9d70-dcd38a6ae9ad", "rel": "self"}, {"href": "http://localhost/volume/targets/99c55c7f-701f-4445-9d70-dcd38a6ae9ad", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network [0.105286s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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__attach_boot_iso_if_needed [0.091515s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_with_physnet [0.126374s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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__attach_boot_iso_if_needed_on_rebuild [0.080636s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach [0.093304s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled [0.122462s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_422_lessee_manager_create_volume_target [0.184067s] ... 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/87a39446-504d-4ab6-8aaf-bb1223d2390b Openstack-Request-Id: req-30bd8ea0-f245-43c0-88c3-0bae30712c95 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "87a39446-504d-4ab6-8aaf-bb1223d2390b", "created_at": "2025-05-07T23:00:22.755713+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id3", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/87a39446-504d-4ab6-8aaf-bb1223d2390b", "rel": "self"}, {"href": "http://localhost/volume/targets/87a39446-504d-4ab6-8aaf-bb1223d2390b", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state [0.071753s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state_fail [0.071094s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled_all_ports [0.132582s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestNeutronVifPortIDMixin.test_vif_detach_active_node [0.148449s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_423_third_party_admin_cannot_create_volume_target [0.186928s] ... 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-6cf2f4ad-8673-45ed-bb9d-54154ce2f819 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports [0.113308s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestNeutronVifPortIDMixin.test_vif_detach_active_node_failure [0.151669s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports_exception [0.127477s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_424_owner_member_can_patch_volume_target [0.193876s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/c1c499d3-076e-4fef-af7b-36335ca43145 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b1aeb268-10ba-4260-9971-79ddf71c9aee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_deleting_node [0.133781s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_down [0.066070s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_up [0.066834s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_not_attached [0.128661s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_425_owner_service_can_patch_volume_target [0.204803s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/97f42cd9-2b78-4e94-8f9f-1c80a2dd4d85 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-69cc8c8c-2ddd-41b4-8a2d-212c74847f74 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface [0.134954s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_portgroup [0.128470s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface_with_client_id [0.116745s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_426_lessee_admin_can_patch_volume_target [0.199052s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/0bcaf6e9-c3cd-4361-b1b3-bacac5d0c1a5 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-01b9757e-1773-48f3-83cc-a9dae3a8ff09 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network [0.149810s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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__get_power_state_ilo6_redirect [0.707420s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface [0.123647s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_invalid_state [0.085658s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_from_node [0.164462s] ... ok 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.TestRBACProjectScoped.test_project_scoped_427_lessee_manager_can_patch_volume_target [0.213084s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/d25d3cf1-e2fb-45e8-907c-c60109a66b02 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a5468664-09b3-4b5e-abea-3653c38c0a5b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_missed_info [0.120356s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_with_sg [0.054489s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network [0.067404s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_with_client_id [0.115116s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_428_lessee_member_cannot_patch_volume_target [0.173178s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/9f0b7d99-6617-4068-8c3d-aacb1c8f1f8f WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4fe71e04-9410-45ad-9f55-19cda68300e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network_from_node [0.097498s] ... ok 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_neutron.NeutronInterfaceTestCase.test_add_inspection_network_with_sg [0.062851s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_429_third_party_admin_cannot_patch_volume_target [0.077036s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/60fc578a-ffb2-4b28-9769-43e1e9646360 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-031aa60b-a76e-470c-ab74-fb97da6367b7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 60fc578a-ffb2-4b28-9769-43e1e9646360 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_network_type_unmanaged [0.163974s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network [0.055653s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_430_service_cannot_patch_volume_target [0.090342s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/d03afa2e-d4bf-4ba7-9823-6a51b80bebb8 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4b6c6eb3-9b16-4bc7-b33f-fbc4697bd9c2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target d03afa2e-d4bf-4ba7-9823-6a51b80bebb8 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_from_node [0.094714s] ... ok 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.TestRBACProjectScoped.test_project_scoped_431_owner_admin_can_delete_volume_target [0.098622s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/664eb528-b4db-4ba4-825d-c427a05e29af GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-514a7c54-9e1b-44b8-8873-29f7c39a6836 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_with_sg [0.055512s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_no_smartnic_and_link_info [0.212646s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network [0.059451s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_432_owner_manager_can_delete_volume_target [0.095826s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/0852204b-6f2d-41bb-8ac4-cbee921f2476 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-cda277dd-5c76-40f9-ae66-33ba93c05e01 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_433_owner_manager_can_delete_volume_target_service [0.088466s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/50dcf515-d0b8-4a5d-9ac8-42661c423487 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f8e4d0a7-05ed-4fcb-9b4f-4c013e82b717 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_from_node [0.155299s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_link_info [0.180987s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_434_lessee_admin_can_delete_volume_target [0.077020s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/362316eb-0277-46c2-a21b-97f7a65b3cd4 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-97380a0d-0524-4f4d-a20e-7fd1777c4a8d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_435_lessee_manager_can_delete_volume_target [0.095707s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/9a0d8a04-8f63-4f21-8c02-ab37bcadd7fa GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-26683317-dbf0-41d5-b7e3-04eee4209ba9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_with_sg [0.135395s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_smartnic_and_no_link_info [0.154295s] ... ok {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups [0.088110s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_436_owner_member_cannot_delete_volume_target [0.128359s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/408ba6a9-2944-4da9-acfb-26193882fa24 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b4cb1b03-b51a-4182-a528-d2cdaa19da69 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks [0.147715s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_exception_by_neutronclient [0.092342s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_437_lessee_member_cannot_delete_volume_target [0.080893s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/7f56301b-2386-4081-9298-669cbfeaf4cb GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-498c5077-ebc7-4c80-99f2-90eeeded2905 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_multiple_ports_one_vif_id [0.150476s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_less_than_configured [0.095317s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_438_third_party_admin_cannot_delete_volume_target [0.116106s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/9729a4a9-ecad-4aa2-8e0b-983b56192270 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7af36392-16a9-4678-8460-db8ed4aaf261 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 9729a4a9-ecad-4aa2-8e0b-983b56192270 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_more_than_configured [0.101696s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_ports_for_node [0.123521s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_439_service_cannot_delete_volume_target [0.107480s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/4502c948-6134-48ae-9410-c275e9c6a859 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-520e0cf9-25a4-4fc3-9cfc-4632412aa954 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 4502c948-6134-48ae-9410-c275e9c6a859 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_no_sg_from_neutron [0.098886s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_440_owner_reader_can_get_volume_connectors [0.121484s] ... 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-065ec619-8673-4c58-b10d-29517730f2f5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "65ea0296-219b-4635-b0c8-a6e055da878d", "connector_id": "iqn.2012-06.org.openstack.magic", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/65ea0296-219b-4635-b0c8-a6e055da878d", "rel": "self"}, {"href": "http://localhost/volume/connectors/65ea0296-219b-4635-b0c8-a6e055da878d", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}]} {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_vif_id [0.144139s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_down [0.114369s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_441_owner_service_can_get_volume_connectors [0.122019s] ... 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-26c8abe4-4ab7-4d08-8fc8-624693b946ab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "65ea0296-219b-4635-b0c8-a6e055da878d", "connector_id": "iqn.2012-06.org.openstack.magic", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/65ea0296-219b-4635-b0c8-a6e055da878d", "rel": "self"}, {"href": "http://localhost/volume/connectors/65ea0296-219b-4635-b0c8-a6e055da878d", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}]} {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_down_target_state_up [0.100901s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_update_fail [0.148196s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_442_lessee_reader_can_get_node_volume_connectors [0.090596s] ... 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-c731f965-0e63-485e-9e0f-81db5b3ec22b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"connectors": [{"uuid": "2a5eefd6-c073-470e-a6ac-d596bcb7e76e", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/2a5eefd6-c073-470e-a6ac-d596bcb7e76e", "rel": "self"}, {"href": "http://localhost/volume/connectors/2a5eefd6-c073-470e-a6ac-d596bcb7e76e", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_down [0.106068s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_443_third_party_admin_cannot_get_node_volume_connectors [0.092970s] ... 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-5b9fa86f-3a98-454f-a710-9c35c7caa2b6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_client_id [0.148186s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_up [0.105702s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_444_service_cannot_get_node_volume_connectors [0.086599s] ... 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-580fab4c-fa8a-4878-9c6c-e9803dc61cc6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups [0.128165s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_active_max_retry [0.102269s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_445_owner_reader_can_get_node_volume_targets [0.115902s] ... 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-37ff5555-e764-4cab-b3bf-1604a146e0e2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "a265e2f0-e97f-4177-b1c0-8298add53086", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "self"}, {"href": "http://localhost/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}]} {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down [0.101686s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_off_fail [2.066659s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_446_owner_service_can_read_get_node_volume_targets [0.087571s] ... 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-b519faca-4f51-4b16-9660-e7a639a4996c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "a265e2f0-e97f-4177-b1c0-8298add53086", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "self"}, {"href": "http://localhost/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}]} {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups_no_address [0.178962s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down_max_retry [0.105754s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_447_lessee_reader_can_get_node_volume_targets [0.098656s] ... 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-f5f123ed-de4c-42f4-80d1-794621cdded8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"targets": [{"uuid": "70434e79-547d-415f-94e2-3d0e97aa1386", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/70434e79-547d-415f-94e2-3d0e97aa1386", "rel": "self"}, {"href": "http://localhost/volume/targets/70434e79-547d-415f-94e2-3d0e97aa1386", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_get_node_network_data [0.156249s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_448_third_part_admin_cannot_read_node_volume_targets [0.087383s] ... 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-343b54f4-caa6-46c9-a836-d7f92202281f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_449_service_cannot_read_node_volume_targets [0.080521s] ... 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-1d1f4909-ed3e-4d25-9e35-f7c9033b5331 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_450_owner_reader_cannot_get_drivers [0.081895s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-3e077c48-12e9-4671-afdc-450aab635fe4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_false [0.211370s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_451_lessee_reader_cannot_get_drivers [0.129819s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-36577b5c-9198-4059-b15f-889fd0191822 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_true [0.153002s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_452_third_party_admin_cannot_get_drivers [0.076360s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-72cdbe1a-c2f6-41ca-bec8-8907cbca1176 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_453_service_cannot_get_drivers [0.083963s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-0c3f4f8c-5147-4989-96b4-c6408f69c7e7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network [0.127423s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_454_owner_reader_cannot_get_drivers_vendor_passthru [0.092871s] ... 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-53bab7ca-b359-4b4a-85ab-007a2a0e021b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_455_lessee_reader_cannot_get_drivers_vendor_passthru [0.066866s] ... 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-944f9e21-f3f6-478a-94c5-816183811f6b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_up [0.762371s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network_from_node [0.169451s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_456_third_party_admin_cannot_get_drivers_vendor_passthru [0.144649s] ... 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-d71882a3-4f44-4832-b741-5dc40469a33c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network [0.123265s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.common.test_neutron.TestNeutronNetworkInterfaceMixin.test_get_network_names_and_uuids [0.257057s] ... ok 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.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network_from_node [0.138089s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.145775s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_457_service_cannot_get_drivers_vendor_passthru [0.175359s] ... 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-3163cabd-d2db-4ec4-a4d1-8a39cd06e9f2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_oci_registry.TestRegistrySessionHelper.test_get_token_from_config [0.044084s] ... ok {1} ironic.tests.unit.common.test_oci_registry.TestRegistrySessionHelper.test_get_token_from_config_bad_file [0.056072s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_fail [0.097299s] ... ok {1} ironic.tests.unit.common.test_oci_registry.TestRegistrySessionHelper.test_get_token_from_config_default [0.043492s] ... ok {1} ironic.tests.unit.common.test_oci_registry.TestRegistrySessionHelper.test_get_token_from_config_no_match [0.028792s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_with_master_path [0.026130s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TFTPImageCacheTestCase.test_without_master_path [0.022549s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_458_owner_reader_can_get_bios_setttings [0.199807s] ... 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-5b12fe5e-f705-45a1-852a-e0a4b423fa41 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"bios": []} {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_default_noop [0.024413s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_no_source [0.024381s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_raises_exception_with_absolute_path [0.034738s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files [0.026297s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_exception_on_chmod [0.026276s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_exception_on_copy [0.035742s] ... ok {1} ironic.tests.unit.common.test_pxe_utils.TestPXEUtilsBootloader.test_place_loaders_for_boot_two_files_relative_path [0.026151s] ... ok {1} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_context [0.025464s] ... ok {1} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity [0.016945s] ... ok {1} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity_empty_base [0.017079s] ... ok {1} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_context [0.042522s] ... ok {1} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity [0.022062s] ... ok {1} ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity_empty_base [0.022731s] ... ok {1} ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier [0.025381s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_rescuing_network [0.592332s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_rpc.TestUtils.test_get_sensors_notifier_no_notifier [0.023818s] ... ok {1} ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_publisher_id [0.023114s] ... ok {1} ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier [0.021857s] ... ok {1} ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_notifier [0.018964s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks [0.103277s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_rpc.TestUtils.test_get_versioned_notifier_no_publisher_id [0.028929s] ... ok {1} ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_disabled [0.048170s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_portgroup_1 [0.117991s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_rpc.TestUtils.test_init_globals_notifications_enabled [0.074944s] ... ok {1} ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_with_custom_topics [0.051273s] ... ok {1} ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link [0.022160s] ... ok {1} ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link_EEXIST [0.021516s] ... ok {1} ironic.tests.unit.common.test_utils.GetRouteSourceTestCase.test_get_route_source_indexerror [0.021126s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_portgroup_2 [0.133809s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_utils.GetRouteSourceTestCase.test_get_route_source_ipv4 [0.029690s] ... ok {1} ironic.tests.unit.common.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv6 [0.024897s] ... ok {1} ironic.tests.unit.common.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv6_linklocal [0.018524s] ... ok {1} ironic.tests.unit.common.test_utils.GetRouteSourceTestCase.test_get_route_source_ipv6_linklocal_allowed [0.032522s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_smartnic [0.104436s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_459_lessee_reader_can_get_bios_settings [0.820686s] ... 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-dc8f8122-6038-4122-8082-9bc317dafacf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"bios": []} {1} ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_file [0.065426s] ... ok {1} ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_string [0.039353s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate [0.104152s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_460_third_party_admin_cannot_get_bios_settings [0.131266s] ... 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-929fef69-0b99-4f82-b582-c1bd980e7e06 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_with_quotes [0.053173s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_ok [1.123966s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_free_space_ok [0.047763s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_inspection [0.114720s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_utils.TempFilesTestCase.test__check_dir_writable_not_writable [0.046294s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_461_service_can_get_bios_setttings_owner_project [0.150937s] ... 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-7c9cf6ab-b530-426f-8793-f9628e92035b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"bios": []} {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_ok [0.051183s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_inspection_exc [0.090150s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_utils.TempFilesTestCase.test_check_dir_free_space_raises [0.037658s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_fail [0.136974s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_no_dir [0.046896s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue [0.112943s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_utils.TempFilesTestCase.test_check_dir_ok [0.044213s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_462_service_cannot_get_bios_setttings [0.148614s] ... 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-30fb89f0-1f48-44cd-b236-c706d5a8506f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_with_pass_in [0.054220s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue_exc [0.095057s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_utils.TempFilesTestCase.test_is_memory_insufficient [0.047840s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_463_owner_reader_cannot_get_conductors [0.122092s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b142dac2-fada-48fd-b723-336fd14df2bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_good [0.052896s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_with_disable_power_off [0.106343s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_utils.TempFilesTestCase.test_is_memory_insufficient_recovers [0.046896s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_warning_only [0.053536s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_464_lessee_reader_cannot_get_conductors [0.132217s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9a8496fc-e31d-449b-9d59-eff289cac09f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_attach [0.087560s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_utils.TempFilesTestCase.test_tempdir [0.041604s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked [0.054069s] ... ok {1} ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree [0.047376s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_detach [0.130517s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_465_third_party_admin_cannot_get_conductors [0.142739s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d118aeff-09aa-4a44-a687-1f7240801466 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_fail [0.032765s] ... ok {1} ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_success [0.048292s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_list [0.132964s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_466_owner_reader_can_get_allocations [0.150986s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5319e1c6-8479-4131-a908-eba1cbd59856 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "fe7cf144-e1f7-474b-9fd6-b24d620a19ca", "created_at": "2025-05-07T23:00:28.897856+00:00", "updated_at": "2025-05-07T23:00:28.899063+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/fe7cf144-e1f7-474b-9fd6-b24d620a19ca", "rel": "self"}, {"href": "http://localhost/allocations/fe7cf144-e1f7-474b-9fd6-b24d620a19ca", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_name_match_first [0.124680s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_candidates_do_not_match [0.061570s] ... ok {3} ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_port_changed [0.143074s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_changed_after_lock [0.139031s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_467_lessee_reader_can_get_allocations [0.240761s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-48721c70-312b-4e8b-8352-d515bdbdb04c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": [{"uuid": "1a5a3862-c720-404f-9c46-dc6fc769dde0", "created_at": "2025-05-07T23:00:29.123901+00:00", "updated_at": "2025-05-07T23:00:29.131630+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/1a5a3862-c720-404f-9c46-dc6fc769dde0", "rel": "self"}, {"href": "http://localhost/allocations/1a5a3862-c720-404f-9c46-dc6fc769dde0", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} {3} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_bios_registry_save [0.171742s] ... ok {1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out [0.083709s] ... ok {1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out_project [0.082679s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_empty_bios_registry [0.163751s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_468_owner_reader_can_get_their_allocation [0.216211s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/339e443c-a7ef-489e-bace-218e19e39745 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6b2531d8-eb83-4534-a41b-11d73cddbb87 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "339e443c-a7ef-489e-bace-218e19e39745", "created_at": "2025-05-07T23:00:29.335749+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/339e443c-a7ef-489e-bace-218e19e39745", "rel": "self"}, {"href": "http://localhost/allocations/339e443c-a7ef-489e-bace-218e19e39745", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_locked [0.147762s] ... ok {1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_success [0.091988s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_bios.RedfishBiosRegistryTestCase.test_cache_exception_bios_registry [0.187111s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_469_lessee_reader_can_get_their_allocation [0.242787s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/b3df9911-d94f-4a2a-b7fe-791ca17e722e WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a8925292-1698-4385-8ab3-8c9b9f31bdd4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "b3df9911-d94f-4a2a-b7fe-791ca17e722e", "created_at": "2025-05-07T23:00:29.624417+00:00", "updated_at": "2025-05-07T23:00:29.632833+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/b3df9911-d94f-4a2a-b7fe-791ca17e722e", "rel": "self"}, {"href": "http://localhost/allocations/b3df9911-d94f-4a2a-b7fe-791ca17e722e", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_candidates [0.116212s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_bios.RedfishBiosRegistryTestCase.test_cache_no_bios_registry [0.186381s] ... ok {1} ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_traits [0.107261s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker [0.037636s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_clean_up_instance_cdrom_and_floppy [0.095202s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_cannot_use_reserved [0.037611s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_470_owner_admin_can_delete_their_allocation [0.230430s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/2f73fa46-e28f-4583-8633-1cbc1ec19249 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f73afb72-a4a3-415e-a924-35e67d041414 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_no_reserved [0.045273s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_clean_up_instance_only_cdrom [0.095834s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_none_free [0.039981s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_reserved [0.027349s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_clean_up_instance_ramdisk [0.087888s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_471_owner_manager_can_delete_their_allocation [0.225979s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/ba54418b-b164-43b9-ac3e-85682856e18d GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-ef141192-b408-4a4a-ab6f-a3d3c461f3e7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_clean_up_ramdisk [0.101554s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_conductor_shutdown_flag [0.208769s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_deploy_info [0.100227s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_472_lessee_admin_can_delete_their_allocation [0.166936s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/cd6e883b-7478-4801-a983-44493023c476 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-36c7e429-a5de-402a-a8ba-a9952678ae89 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_deploy_info_exc [0.116102s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok [2.122607s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_arch_deploy [0.099925s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_473_lessee_manager_can_delete_their_allocation [0.174406s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/897b67e0-8eec-469a-8f42-2b1e0abec7bf GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-6e4b26d0-8937-4c91-9f69-44eece8542bb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_arch_rescue [0.106776s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_474_owner_member_can_delete_their_allocation [0.170667s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/6e0461f2-514c-4eb1-a8ee-8ae7ae5bd185 GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-397ae1d4-9a14-4ea8-9a9b-272d572ccb44 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_deploy [0.099165s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_deploy [0.096671s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_waits_on_workerpool [0.588288s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACProjectScoped.test_project_scoped_475_lessee_member_can_delete_their_allocation [0.179912s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/bfded742-a73a-4517-9f31-e3957ec26c3f GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-9b9bcde0-d599-449b-9c38-cf1ab178345d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_rescue [0.112952s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_del_host_with_mdns [0.151841s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_choose_by_hierarchy_rescue [0.099451s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_476_owner_member_can_patch_allocation [0.170684s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/2927200d-2d11-48b1-a106-0f556a6b8f18 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d8fe28eb-3311-4f69-8abf-bad8af1b7cde X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "2927200d-2d11-48b1-a106-0f556a6b8f18", "created_at": "2025-05-07T23:00:30.956793+00:00", "updated_at": "2025-05-07T23:00:31.026179+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/2927200d-2d11-48b1-a106-0f556a6b8f18", "rel": "self"}, {"href": "http://localhost/allocations/2927200d-2d11-48b1-a106-0f556a6b8f18", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_deploy [0.093893s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_prevent_double_start [0.145808s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_exc [0.123652s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_477_lessee_member_can_patch_allocation [0.188823s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/80e00731-5d94-488c-8430-c4caa3194017 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0cf3f893-d236-407c-88f8-301e36606a5c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "80e00731-5d94-488c-8430-c4caa3194017", "created_at": "2025-05-07T23:00:31.136182+00:00", "updated_at": "2025-05-07T23:00:31.208000+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/80e00731-5d94-488c-8430-c4caa3194017", "rel": "self"}, {"href": "http://localhost/allocations/80e00731-5d94-488c-8430-c4caa3194017", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_clears_conductor_locks [0.180454s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_deploy [0.106188s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_478_third_party_admin_can_get_allocations [0.145451s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c438d17a-9518-41e0-af70-8242d4384a42 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"allocations": []} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_deploy_by_arch [0.069326s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_dbapi_single_call [0.141617s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_hw_type_register [0.080717s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_479_third_party_admin_can_create_allocation [0.179546s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a99f2b0f-12dd-4b62-bae5-c4d740255c93 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_hw_types [0.084386s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_missing_driver [0.058489s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_480_third_party_admin_cannot_create_allocation_with_owner_node [0.197721s] ... 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-1b962a33-dabe-42e0-a333-ef14c00a22c3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_recover_nodes_stuck [0.350795s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.test_acl.TestRBACProjectScoped.test_project_scoped_481_third_party_admin_cannot_create_allocation_with_candidates_not_owned [0.240730s] ... 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-691a571b-cd78-4ba4-adb2-746c382d2f17 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f, 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_rescue [0.678435s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_conductor [0.127800s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_from_conf_rescue_by_arch [0.070355s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_iso [0.047631s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_482_owner_admin_can_create_allocation_with_their_uuid [0.247647s] ... 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-b0cee3db-2561-4c56-a49c-6d77409b4a51 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_deploy [0.082721s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_names [0.158228s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_specific_tasks [0.045384s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_deploy_by_arch [0.098027s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_json_rpc [0.070711s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_rescue [0.080060s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_json_rpc_port [0.069441s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_mixed_source_rescue_by_arch [0.075687s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_483_owner_manager_can_create_allocation_with_their_uuid [0.304878s] ... 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-b29b939f-24f9-4085-855a-cad974a0bbd4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns [0.106504s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_ramdisk [0.065998s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns_and_debug [0.072105s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_parse_driver_info_rescue [0.077810s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_no_enabled_interfaces [0.075965s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACProjectScoped.test_project_scoped_484_third_party_admin_cannot_read_an_allocation [0.215274s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/5f42917b-7a9d-48d5-b735-b9862fe307a1 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2f4a1ff2-15cc-4eb1-8d5e-3709590b8a14 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 5f42917b-7a9d-48d5-b735-b9862fe307a1 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_without_jsonrpc_port_pined_version [0.074403s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_local_boot_option [0.164094s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_clears_conductor_locks [0.081406s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_doesnt_unregister_conductor [0.088918s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_local_whole_disk_image [0.175461s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_485_third_party_admin_cannot_patch_an_allocation [0.222328s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/8fa30e45-3fc9-4142-8d14-0edc0ea7ae40 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-767b3c0a-8275-46ff-8913-719906c54ceb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 8fa30e45-3fc9-4142-8d14-0edc0ea7ae40 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_uninitialized_conductor [0.049855s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_unregisters_conductor [0.114107s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACProjectScoped.test_project_scoped_486_third_party_admin_cannot_delete_an_allocation [0.191919s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/1b3abef3-1cc4-405e-914f-45ab505a7706 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bda7201b-4e29-46f4-9a1d-3014a644dbfd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 1b3abef3-1cc4-405e-914f-45ab505a7706 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_normal_boot [0.205112s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_ramdisk_boot [0.141869s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_487_owner_reader_can_read_node_allocation [0.223235s] ... 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-d9838d29-a0e7-4e48-9136-99436dd2af8f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "72b0a640-4792-40f8-8421-0926def38d06", "created_at": "2025-05-07T23:00:33.342177+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/72b0a640-4792-40f8-8421-0926def38d06", "rel": "self"}, {"href": "http://localhost/allocations/72b0a640-4792-40f8-8421-0926def38d06", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_timeout [3.074383s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_ramdisk_boot_iso [0.165090s] ... ok {1} ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_warning_on_low_workers_pool [0.426895s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_off [0.100662s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_bad_step_return_value [0.111719s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_488_lessee_reader_can_read_node_allocation [0.234482s] ... 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-7ad3e939-c8df-4ade-8159-4712074a6700 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "38b47621-5840-45e3-acd7-3524a3f5ae97", "created_at": "2025-05-07T23:00:33.601314+00:00", "updated_at": "2025-05-07T23:00:33.602461+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/38b47621-5840-45e3-acd7-3524a3f5ae97", "rel": "self"}, {"href": "http://localhost/allocations/38b47621-5840-45e3-acd7-3524a3f5ae97", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_ramdisk_boot_iso_boot [0.191450s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_execute_fail [0.075599s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_fail_in_tear_down_cleaning [0.089361s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_489_third_party_admin_cannot_read_node_allocation [0.201585s] ... 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-c93df287-5266-495d-85fb-f0df74c60788 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_last_step_noop [0.123853s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_490_owner_admin_can_delete_allocation [0.155260s] ... 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-69658fe2-10ca-480b-8c2a-ffa9ebca7a70 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_no_steps [0.201135s] ... ok 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.TestRBACProjectScoped.test_project_scoped_491_owner_manager_can_delete_allocation [0.167645s] ... 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-488cabb0-e8e2-4c70-a392-e847bab1e25e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_fast_track [0.187552s] ... ok 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.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_instance_ramdisk_boot_render_configdrive [0.660724s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_492_lessee_admin_can_delete_allocation [0.152987s] ... 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-8a6caea3-ca50-493c-bf32-816f9f49e6af X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_prepare_ramdisk_fast_track [0.042126s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.069276s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_last_step_noop_fast_track [0.126883s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_493_lessee_manager_not_delete_allocation [0.163505s] ... 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-c60df900-c955-4769-a572-32902a9b3784 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_bad_step_return_value [0.130457s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_with_params [0.154465s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_494_third_party_admin_cannot_delete_allocation [0.152024s] ... 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-1c3e110d-3e92-4d34-909b-1bfa7778c9c4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_boot_iso [0.089526s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_correct_vendor [0.039440s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_errors_with_lack_of_support [0.043287s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_execute_fail [0.210666s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_validate_inspection [0.034421s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_495_owner_reader_cannot_get_deploy_templates [0.162348s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ce4f618a-d03b-4940-90d9-5dfe854694f6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_kernel_ramdisk [0.057351s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_local [0.035699s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_496_lessee_reader_cannot_get_deploy_templates [0.116761s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-629d18ca-4a50-40ff-b5ec-246cd31b91ff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishHTTPBootTestCase.test_validate_missing [0.066448s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__has_vmedia_device [0.026134s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__has_vmedia_device_inserted [0.036049s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_fail_in_tear_down_cleaning [0.221423s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.RedfishVirtualMediaBootTestCase.test__insert_vmedia_already_inserted [0.037386s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_497_third_party_admin_cannot_get_deploy_templates [0.139027s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3dd0fba5-b5e9-400f-a0d0-50fc7aab5547 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew [0.050724s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_last_step_noop [0.121784s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew_dvd [0.073119s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_anew_dvd_retry [0.048570s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_bad_device [0.037645s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_498_third_party_admin_cannot_post_deploy_template [0.178718s] ... 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-3daedc64-2447-44df-bc91-2adf30c42f19 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_manual_no_steps [0.172031s] ... ok 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.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_empty_media_type [0.062361s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_while_ejecting [0.041066s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__validate_vendor_compatible_with_idrac [0.046150s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_retired_last_step_change_tgt_state [0.114387s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_499_service_cannot_get_deploy_templates [0.175109s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5b363f2d-bb35-4d20-958f-0ffc163ef408 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__validate_vendor_incompatible_with_idrac [0.048747s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_cdrom_and_floppy [0.047167s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_only_cdrom [0.035740s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated [0.115412s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.RedfishVirtualMediaBootTestCase.test_clean_up_instance_ramdisk [0.064401s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_ramdisk [0.039892s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_everything [0.044044s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios [0.131851s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.RedfishVirtualMediaBootTestCase.test_eject_vmedia_not_inserted [0.055774s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_specific [0.072229s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_exception [0.131432s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.RedfishVirtualMediaBootTestCase.test_eject_vmedia_unknown [0.058200s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_with_dvd_cisco_ucs [0.049095s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_deploy_info [0.042519s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_unsupported [0.147220s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.RedfishVirtualMediaBootTestCase.test_parse_deploy_info_exc [0.035147s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_arch_deploy [0.054227s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_arch_rescue [0.045536s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_500_service_cannot_post_deploy_template [0.659785s] ... 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-d169aafc-1882-428a-8d69-c2bc837ea1ae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_deploy [0.053731s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled [0.176090s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_deploy [0.043458s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_501_owner_reader_cannot_access_chassis [0.141694s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-11cee320-c434-463a-b96d-b6d69f0c0629 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_disabled [0.123966s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_502_lessee_reader_cannot_access_chassis [0.171112s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-2a8c8240-71a0-4209-be68-55f22e35a93a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_enabled [0.169901s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_503_third_party_admin_cannot_access_chassis [0.199996s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-21559510-8074-4d9e-b7e4-77e99ecf852b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled [0.193449s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_missing_param_rescue [0.547937s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_504_third_party_admin_cannot_create_chassis [0.134154s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-161e31d5-728b-44c0-9b81-f7f985a5dfa5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_disabled [0.124744s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.RedfishVirtualMediaBootTestCase.test_parse_driver_info_choose_by_hierarchy_rescue [0.063878s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_deploy [0.071744s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_505_service_cannot_access_chassis [0.146427s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-ce26d0ed-ed45-4507-8803-691ab9c00ca0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_exc [0.106481s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_enabled [0.181266s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_506_service_cannot_create_chassis [0.128617s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-ea4476a5-acb7-4db5-bda4-10128d771986 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_deploy [0.113994s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_none [0.181496s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_deploy_by_arch [0.097705s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_507_node_history_get_admin [0.222254s] ... 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-7aba5321-0fd0-4189-95b7-1d9a36394664 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"history": [{"uuid": "3da05afc-c4b7-42a1-bb9b-e445bd9c2a7e", "created_at": "2025-05-07T23:00:37.234371+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/3da05afc-c4b7-42a1-bb9b-e445bd9c2a7e", "rel": "self"}]}]} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_rescue [0.097097s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_network_validate_fail [0.200579s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.RedfishVirtualMediaBootTestCase.test_parse_driver_info_from_conf_rescue_by_arch [0.105261s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_508_node_history_get_member [0.173085s] ... 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-ff7bbcbf-32fa-436b-ab5f-73dae6c0de3a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"history": [{"uuid": "4626dc3c-a03f-4357-9be9-fa9c9d36d6f1", "created_at": "2025-05-07T23:00:37.466755+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/4626dc3c-a03f-4357-9be9-fa9c9d36d6f1", "rel": "self"}]}]} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_iso [0.101667s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_power_validate_fail [0.174509s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.RedfishVirtualMediaBootTestCase.test_parse_driver_info_iso_deprecated [0.071969s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_on [4.077737s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_deploy [0.069478s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_509_node_history_get_reader [0.223269s] ... 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-764cd0a0-3b81-44fc-9ebf-be2ed4027cdf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"history": [{"uuid": "3958b7cb-b48a-4f4a-893b-ea4a893903cf", "created_at": "2025-05-07T23:00:37.634948+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/3958b7cb-b48a-4f4a-893b-ea4a893903cf", "rel": "self"}]}]} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_deploy_by_arch [0.090450s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_fail [0.212614s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_rescue [0.076508s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_mixed_source_rescue_by_arch [0.079358s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_510_node_history_get_service [0.218203s] ... 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-b0f1dba8-0762-4eb5-905c-b5cf021dfaf0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"history": [{"uuid": "0fa933dd-2a8b-4085-bedd-ca8453532893", "created_at": "2025-05-07T23:00:37.917020+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/0fa933dd-2a8b-4085-bedd-ca8453532893", "rel": "self"}]}]} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_ramdisk [0.070820s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_wait [0.180696s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.RedfishVirtualMediaBootTestCase.test_parse_driver_info_removable [0.035986s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_removable_deprecated [0.043659s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_parse_driver_info_rescue [0.050226s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_511_node_history_get_service_cannot_be_retrieved [0.213504s] ... 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-4c426e74-6adf-4c21-b100-db4fb788d009 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_local_boot_option [0.126296s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_steps_fail [0.325239s] ... ok 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.TestRBACProjectScoped.test_project_scoped_512_node_history_get_entry_admin [0.267143s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/aabe61da-88fa-4be3-90f4-942cc8214611 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-128d9f4c-b814-485c-8c47-b2590043fd6a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "aabe61da-88fa-4be3-90f4-942cc8214611", "created_at": "2025-05-07T23:00:38.331575+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/aabe61da-88fa-4be3-90f4-942cc8214611", "rel": "self"}]} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_local_whole_disk_image [0.192450s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_maintenance [0.152809s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual [0.160948s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.RedfishVirtualMediaBootTestCase.test_prepare_instance_normal_boot [0.203635s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_513_node_history_get_entry_member [0.240589s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/19065b38-f413-4ffe-a143-4fe47eea7ff6 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f69f7df6-3af5-4e29-8c13-2cd4160fdaa2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "19065b38-f413-4ffe-a143-4fe47eea7ff6", "created_at": "2025-05-07T23:00:38.618101+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/19065b38-f413-4ffe-a143-4fe47eea7ff6", "rel": "self"}]} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot [0.157368s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios [0.159042s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_514_node_history_get_entry_reader [0.248291s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/42e70caf-4413-4312-8023-fe886abc42e3 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-007b3746-252d-4c7a-b5cf-21466ccb0cc3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "42e70caf-4413-4312-8023-fe886abc42e3", "created_at": "2025-05-07T23:00:38.859154+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/42e70caf-4413-4312-8023-fe886abc42e3", "rel": "self"}]} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_iso [0.163972s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_exception [0.191253s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_unsupported [0.145253s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_515_lessee_node_history_get_admin [0.253948s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1fe4b10c-6e6b-49c6-bea2-e410ea735f0d/history WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3338ff85-50a0-4b1e-8ed3-cad8b2563127 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1fe4b10c-6e6b-49c6-bea2-e410ea735f0d could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_disable_ramdisk [0.119804s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_network_validate_fail [0.106182s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_516_lessee_node_history_get_member [0.196554s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/fd633758-ff06-4acc-a17a-00e8ca33ab37/history WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-49a667b8-32a1-4b6a-9f47-e3a933a510e2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fd633758-ff06-4acc-a17a-00e8ca33ab37 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_iso_boot [0.622914s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_517_lessee_node_history_get_reader [0.208243s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/fe4f71f2-daaf-4037-a05a-a6d2aaf85183/history WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9c5306b3-962f-44c9-9d67-87335c1a5b4f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fe4f71f2-daaf-4037-a05a-a6d2aaf85183 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok [2.143695s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_instance_ramdisk_boot_render_configdrive [0.197765s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_518_lessee_node_history_get_entry_admin [0.239808s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/6a0f3084-a4f3-4c3e-bc1d-1db9f9faee4a/history/659a8bc5-c527-4c50-a7d9-dac1a16fac16 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-68b8d7d0-4143-475a-b74e-699c328a86d1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 6a0f3084-a4f3-4c3e-bc1d-1db9f9faee4a could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_519_lessee_history_get_entry_member [0.120129s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/e54aadf5-ca96-4d35-8055-1917c6b9e791/history/04a6bca2-0e1b-4eac-acce-1cae7ffd1c7e WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1dd43cbc-8a3e-410a-9c04-8105d04eb3e3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node e54aadf5-ca96-4d35-8055-1917c6b9e791 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_fast_track [0.231272s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_520_lessee_node_history_get_entry_reader [0.110576s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/2ab0981d-8ce7-4ec2-af72-54e2311d09b5/history/86488ad5-f30a-42d9-9d2c-f8e75f750880 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3a5790a4-763a-41a2-88c0-dbea91282aaf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 2ab0981d-8ce7-4ec2-af72-54e2311d09b5 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_521_owner_service_node_history_get_entry_reader [0.088062s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/19d9a08e-ee54-43ed-b658-d96dd367f727 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f1937656-6b3a-4519-bb64-4ea45ac695b2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "19d9a08e-ee54-43ed-b658-d96dd367f727", "created_at": "2025-05-07T23:00:40.199874+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/19d9a08e-ee54-43ed-b658-d96dd367f727", "rel": "self"}]} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_522_third_party_admin_cannot_get_node_history [0.093648s] ... 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-e37e95e7-e29e-4b2e-9f3b-3607e9556513 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_fast_track_impossible [0.269612s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_523_node_history_get_entry_third_party_admin [0.168518s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/adcd4a90-3cbf-4bec-bef8-eefcf2de00b4 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1e08da2a-4e6f-4bcd-b0df-69d8c4a0e91d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_no_config [0.195503s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_power_validate_fail [1.164590s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_524_node_history_get_entry_service [0.111420s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/9305548d-deb0-43fa-abd5-6bac5ba0d98a WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ea9e1b97-74f0-49c9-b946-d81f32a59625 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_525_node_inventory_get_admin [0.075031s] ... 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-211b1a1f-ce47-430b-a029-8a70b43247ff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"inventory": {"inventory": "test"}, "plugin_data": {"pdata": {"plugin": "data"}}} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_no_debug [0.187932s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_526_node_inventory_get_member [0.117231s] ... 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-525c2d05-3c0b-4314-8471-9c3f40cd064f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"inventory": {"inventory": "test"}, "plugin_data": {"pdata": {"plugin": "data"}}} {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_fail [0.227386s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_floppy [0.151613s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_soft_reboot_ok_initial_power_off [1.135258s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_527_node_inventory_get_reader [0.157630s] ... 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-e1b91d7c-92f3-4029-a221-c77e63b6e578 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"inventory": {"inventory": "test"}, "plugin_data": {"pdata": {"plugin": "data"}}} {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_wait [0.203572s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_params [0.153446s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_528_lessee_node_inventory_get_admin [0.124883s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/4a887481-29bd-4084-8b67-acb3fa54347a/inventory WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e51bc7a7-159c-42dc-a110-907373b11a47 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 4a887481-29bd-4084-8b67-acb3fa54347a could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_prepare_ramdisk_with_usb [0.128297s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_529_lessee_node_inventory_get_member [0.087241s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/10ce6390-75f2-42c2-baa6-f2a06baf396a/inventory WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4e160530-d307-4360-bd05-83013c627125 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 10ce6390-75f2-42c2-baa6-f2a06baf396a could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_boot_iso [0.035836s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_correct_vendor [0.045999s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_inspection [0.048739s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_530_lessee_node_inventory_get_reader [0.132018s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/5ed3dca5-c002-4b69-969d-52802b2dd694/inventory WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ccd689fb-7547-4d06-b6ec-7d862254295b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 5ed3dca5-c002-4b69-969d-52802b2dd694 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_inspection_missing [0.033769s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_kernel_ramdisk [0.060496s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_local [0.048652s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_steps_fail [0.422743s] ... ok 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.TestRBACProjectScoped.test_project_scoped_531_shard_get_shards_disallowed [0.164159s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/shards WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3464e29e-42f8-4acb-b9f6-877076599635 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:shards:get\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_missing [0.043655s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__has_vmedia_device [0.026991s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__has_vmedia_device_inserted [0.073755s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_already_inserted [0.036381s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_network_error_fail [0.192342s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_532_shard_patch_set_node_shard_disallowed [0.170789s] ... 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-cc34668e-6121-4b27-809b-3a862a8eb01e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:shard\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_anew [0.036555s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_anew_dvd [0.050288s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_continue_node_clean [0.104733s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_anew_dvd_retry [0.051646s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_bad_device [0.033518s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_continue_node_clean_no_skip_step [0.081473s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_533_parent_node_patch_by_admin [0.185802s] ... 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-f0fe1e22-d51a-4fc9-a51f-f00516d83d0b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:parent_node\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test__insert_vmedia_while_ejecting [0.063790s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_everything [0.069070s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_from_all_resources [0.045261s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_agent_busy [0.143371s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_534_parent_node_patch_by_member [0.156451s] ... 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-f343d337-8072-4c4e-9d65-4fd35b272ace X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:parent_node\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_535_parent_node_patch_by_reader [0.146689s] ... 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-daf453e4-16d1-4baa-9c19-d53d2eb65ef5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:parent_node\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_automated_all [0.208086s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_not_inserted [0.303372s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_automated_first_step_async [0.123854s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_specific [0.068495s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_536_parent_node_patch_by_manager [0.164284s] ... 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-8d238ab5-c952-40e1-8046-335f4faf2690 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:parent_node\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_unknown [0.051954s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootViaSystemTestCase.test_eject_vmedia_with_dvd_cisco_ucs [0.059895s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup [0.033099s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_537_parent_node_patch_by_cannot_see_node [0.147108s] ... 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-aaca4380-4d52-433e-b76a-e9633f7f6429 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unable to apply the requested parent_node. Requested value was invalid.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup_notstaged [0.031672s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_collect_logs [0.194167s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_utils.FirmwareUtilsTestCase.test_cleanup_swift_fails [0.030214s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_file [0.036733s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_http [0.047244s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_continue_from_last_cleaning [0.110490s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_538_parent_node_children_can_get_list_of_children [0.160879s] ... 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-67de3e43-84ce-431d-8e54-81391142ebff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"children": ["3c3b8adb-edd7-3ed0-8e82-aab714d8411a"], "links": {"href": "http://localhost/v1/nodes?parent_node=1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "rel": "children"}} {3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_download_to_temp_invalid [0.031226s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_handles_hold_from_active [0.112806s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_utils.FirmwareUtilsTestCase.test_download_to_temp_swift [0.107740s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_get_swift_temp_url [0.052746s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_539_lessee_cannot_get_a_nodes_children [0.206193s] ... 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-8dc737e4-67d5-4bd7-80d2-6dd371e717ed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http [0.051127s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_handles_hold_from_wait [0.122009s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_utils.FirmwareUtilsTestCase.test_stage_http_copyfile [0.057315s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_http_copyfile_fails [0.036746s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_local_external [0.031577s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_stage_swift [0.037153s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args [0.027663s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_checksum_missing [0.019257s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_all [0.197489s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_540_owner_reader_can_get_firmware_components [0.251192s] ... 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-c5b8f4cb-7451-4644-a0b9-d799604c4a9f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"firmware": []} {3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_checksum_not_string [0.037652s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_not_list [0.065025s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_all_disable_ramdisk [0.121238s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_source_not_known [0.069136s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning [0.106723s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_unknown_key [0.061769s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_url_missing [0.050501s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_first_step_async [0.071096s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_541_lessee_reader_can_get_firmware_components [0.296739s] ... 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-2ff4c1cc-e365-49af-b6d5-ca61205c0916 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"firmware": []} {3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_url_not_string [0.050618s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot [0.074046s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_wait_not_int [0.087549s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_fail [0.095021s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_542_third_party_admin_cannot_get_firmware_components [0.177524s] ... 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-a7b2fde8-2494-4849-915e-3924449bb8ed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum [0.084189s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum_mismatch [0.065593s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_last_step [0.141414s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_utils.FirmwareUtilsTestCase.test_verify_checksum_sha256 [0.063427s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_verify_checksum_sha512 [0.054326s] ... ok {1} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_node_clean_steps_fail_poweroff [0.091999s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device [0.049256s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_node_locked [0.032844s] ... ok {1} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_validate_fail [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( {1} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_supported_boot_devices [0.031439s] ... ok {1} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device [0.049879s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_soft_reboot_timeout [3.119221s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_clean [0.232083s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_node_locked [0.037135s] ... ok {1} ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_validate_fail [0.083329s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_deploy [0.151824s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.198527s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_pending_create [0.109039s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_543_service_can_get_firmware_components_owner_project [0.764824s] ... 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-3303d598-6808-4fc3-a546-11c22dcef32b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"firmware": []} {1} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_automated_clean [0.247808s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_pending_delete [0.104602s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_deploying [0.204886s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_controller [0.092111s] ... ok {1} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_boot_timeout [0.174452s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_controller_no_controllers [0.069700s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_544_service_cannot_get_firmware_components [0.228311s] ... 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-21ae7f61-e70f-41d4-8c9f-50762c8410a0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_delete_raid_cleaning [0.186231s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_first_controller_controllers [0.063588s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_first_controller_empty [0.073894s] ... ok {1} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_manual_clean [0.182874s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_first_controller_storage_controllers [0.064301s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test__prepare_for_read_raid_delete_raid_deploying [0.177789s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_545_runbooks_post_admin [0.238542s] ... 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/9a2d876b-a30d-4f54-916e-774bd3b99ff3 Openstack-Request-Id: req-b0469cd3-7e59-484d-b33b-ac08d531d0a5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "9a2d876b-a30d-4f54-916e-774bd3b99ff3", "created_at": "2025-05-07T23:00:44.864968+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/9a2d876b-a30d-4f54-916e-774bd3b99ff3", "rel": "self"}, {"href": "http://localhost/runbooks/9a2d876b-a30d-4f54-916e-774bd3b99ff3", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_storage_controller [0.088042s] ... ok {1} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_deploy_timeouts [0.138163s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid0 [0.058063s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_cleaning [0.193148s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid1 [0.061993s] ... ok {1} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test_check_rescuewait_timeouts [0.129331s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_546_runbooks_post_manager [0.257397s] ... 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/d9a2f445-3918-41cf-bdb3-a14e13e4f729 Openstack-Request-Id: req-02e1aa39-8826-4a52-b248-0bc9f1abca1c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d9a2f445-3918-41cf-bdb3-a14e13e4f729", "created_at": "2025-05-07T23:00:45.131052+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/d9a2f445-3918-41cf-bdb3-a14e13e4f729", "rel": "self"}, {"href": "http://localhost/runbooks/d9a2f445-3918-41cf-bdb3-a14e13e4f729", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {1} ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test_check_servicewait_timeouts [0.130803s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_deploying [0.185618s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ConcurrentActionLimitTestCase.test_concurrent_action_limit_cleaning [0.138518s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.TestRBACProjectScoped.test_project_scoped_547_service_post_runbook [0.242962s] ... 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/f09e4f10-d50c-48e0-b303-daf41d797b31 Openstack-Request-Id: req-dc9c51e0-6397-4a4b-9114-71629971b231 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "f09e4f10-d50c-48e0-b303-daf41d797b31", "created_at": "2025-05-07T23:00:45.375941+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/f09e4f10-d50c-48e0-b303-daf41d797b31", "rel": "self"}, {"href": "http://localhost/runbooks/f09e4f10-d50c-48e0-b303-daf41d797b31", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_empty_target_raid_config_cleaning [0.152263s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ConcurrentActionLimitTestCase.test_concurrent_action_limit_deploy [0.091404s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {1} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy [0.100507s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_empty_target_raid_config_deploying [0.162771s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid5 [0.545110s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_548_third_party_admin_post_runbook [0.248338s] ... 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/9d03a0b2-6500-46cf-a471-86c4d0839478 Openstack-Request-Id: req-db3c8043-a9ea-4344-974b-fa42fd70ee13 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "9d03a0b2-6500-46cf-a471-86c4d0839478", "created_at": "2025-05-07T23:00:45.625012+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/9d03a0b2-6500-46cf-a471-86c4d0839478", "rel": "self"}, {"href": "http://localhost/runbooks/9d03a0b2-6500-46cf-a471-86c4d0839478", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "noop", "args": {}, "order": 0}]} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid6 [0.063129s] ... ok {1} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_deprecated [0.202124s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_failed [0.095627s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.202958s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_still_processing [0.089620s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_549_runbooks_post_public_admin [0.239591s] ... 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-5787fde3-ad21-40b7-8677-821ec3b34fab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create a public runbook as a project scoped admin.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_locked [0.197819s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_ilo_error_cleaning_deploying [0.175510s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_success [0.145557s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_550_runbooks_post_public_manager [0.232245s] ... 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-89463fdc-28dd-4a64-a21f-0839cfa71ba2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create a public runbook as a project scoped admin.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root_cleaning [0.167735s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_task_mon_error [0.133708s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__volume_usage_per_disk_bytes_raid10 [0.067608s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_non_root_deploying [0.164890s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__volume_usage_per_disk_bytes_raid5 [0.089130s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_551_runbooks_post_public_service [0.222885s] ... 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-4e53c6c6-840f-4d4e-abd4-3e55112cba13 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create a public runbook as a project scoped admin.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1a [0.135546s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_cleaning [0.160626s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b [0.158278s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_552_runbooks_patch_admin [0.284784s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/a89fc214-401f-44d0-b97c-d12aa74ce713 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4ad639a2-ac7c-46e0-bb41-34f666b41d4d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "a89fc214-401f-44d0-b97c-d12aa74ce713", "created_at": "2025-05-07T23:00:46.448770+00:00", "updated_at": "2025-05-07T23:00:46.634352+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/a89fc214-401f-44d0-b97c-d12aa74ce713", "rel": "self"}, {"href": "http://localhost/runbooks/a89fc214-401f-44d0-b97c-d12aa74ce713", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_deploying [0.182161s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_worker_pool_full [0.845095s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b_apply_time_immediate [0.183497s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_skip_non_root_cleaning [0.144564s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_553_runbooks_patch_manager [0.286967s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/543327d4-2bae-4b9a-b7a6-d474288b5078 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-40aaf47a-2b78-4a2b-8989-c7593c13f46c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "543327d4-2bae-4b9a-b7a6-d474288b5078", "created_at": "2025-05-07T23:00:46.749854+00:00", "updated_at": "2025-05-07T23:00:46.922871+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/543327d4-2bae-4b9a-b7a6-d474288b5078", "rel": "self"}, {"href": "http://localhost/runbooks/543327d4-2bae-4b9a-b7a6-d474288b5078", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_skip_root_skip_non_root_deploying [0.153682s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b_apply_time_on_reset [0.173934s] ... ok {1} ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_wrong_state [0.227554s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector [0.095142s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_2 [0.171107s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_cleaning [0.194119s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_locked [0.082140s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_554_service_patch_runbook [0.289018s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/e4e4ab1a-157a-4ae9-96b1-444e15ff52c5 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0f4849c4-6996-4375-8afb-7c22556bb215 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e4e4ab1a-157a-4ae9-96b1-444e15ff52c5", "created_at": "2025-05-07T23:00:47.032931+00:00", "updated_at": "2025-05-07T23:00:47.213527+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/e4e4ab1a-157a-4ae9-96b1-444e15ff52c5", "rel": "self"}, {"href": "http://localhost/runbooks/e4e4ab1a-157a-4ae9-96b1-444e15ff52c5", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_2_on_reset [0.154385s] ... ok {1} ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_power_on [0.123537s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_with_read_raid_deploying [0.199776s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_555_project_admin_delete_runbook [0.206337s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/9b918d94-c62c-454a-a6b3-95c39ad1ea2d GOT Response: 204 No Content Openstack-Request-Id: req-40151f8d-5081-4f58-b662-6af70198e2f9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {1} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target [0.095645s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_3 [0.153148s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed_cleaning [0.202886s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DestroyVolumeTargetTestCase.test_destroy_volume_target_already_destroyed [0.139708s] ... ok 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.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_4 [0.191300s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_556_project_manager_delete_runbook [0.218914s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/02e5e0d5-e67b-44bc-a406-57e8b84d58f9 GOT Response: 204 No Content Openstack-Request-Id: req-a60ce19f-79fa-414d-8192-2ad0519098ca X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {1} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_gone [0.105206s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_locked [0.084960s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_5a [0.139471s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_create_configuration_with_read_raid_failed_deploying [0.210245s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_557_service_get_runbooks [0.212772s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cb425e06-cbef-4855-9340-4e5268a94109 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "3d18bf97-58c4-45e9-b379-38f009ece4dc", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/3d18bf97-58c4-45e9-b379-38f009ece4dc", "rel": "self"}, {"href": "http://localhost/runbooks/3d18bf97-58c4-45e9-b379-38f009ece4dc", "rel": "bookmark"}]}]} {1} ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_power_on [0.130097s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_cleaning [0.144383s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_5b [0.186144s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_6 [0.115624s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_558_runbooks_project_admin [0.226942s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b1e009da-1f5c-4ada-9caf-13b832a29a21 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "dedabe37-b886-405b-989e-1f02f7adde4a", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/dedabe37-b886-405b-989e-1f02f7adde4a", "rel": "self"}, {"href": "http://localhost/runbooks/dedabe37-b886-405b-989e-1f02f7adde4a", "rel": "bookmark"}]}]} {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_deploying [0.170197s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeAdoptionTestCase.test__do_adoption_boot_validate_failure [0.271854s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_interface_type [0.179362s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error_cleaning [0.177705s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_559_runbooks_runbook_id_get_project_admin [0.213981s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/d26dbc37-9ad3-43e7-b54d-5d6f81d98e38 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cad35cac-b4df-4f12-aaca-27475acaeb64 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "d26dbc37-9ad3-43e7-b54d-5d6f81d98e38", "created_at": "2025-05-07T23:00:48.238747+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/d26dbc37-9ad3-43e7-b54d-5d6f81d98e38", "rel": "self"}, {"href": "http://localhost/runbooks/d26dbc37-9ad3-43e7-b54d-5d6f81d98e38", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_delete_config_immediate [0.170417s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_ramdisk_deploy [0.262386s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_ilo_error_deploying [0.177531s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_delete_config_on_reset [0.152224s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_560_project_admin_patch_runbook [0.312205s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/5a7319b0-ab64-45e5-b044-a18b4d0ee933 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2e802a7c-b44a-4da5-a8e5-f6952201df3d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "5a7319b0-ab64-45e5-b044-a18b4d0ee933", "created_at": "2025-05-07T23:00:48.458512+00:00", "updated_at": "2025-05-07T23:00:48.646957+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/5a7319b0-ab64-45e5-b044-a18b4d0ee933", "rel": "self"}, {"href": "http://localhost/runbooks/5a7319b0-ab64-45e5-b044-a18b4d0ee933", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {1} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_take_over_failure [0.221846s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive_cleaning [0.190144s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeAdoptionTestCase.test__do_adoption_with_takeover [0.209719s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_no_logical_drive_deploying [0.170835s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_561_runbooks_project_manager [0.261123s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e5ccb6ae-a92c-4572-a108-d4b6f8eaeaf2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "b174671c-932c-4ef4-84cd-4ea8e7c5d259", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/b174671c-932c-4ef4-84cd-4ea8e7c5d259", "rel": "self"}, {"href": "http://localhost/runbooks/b174671c-932c-4ef4-84cd-4ea8e7c5d259", "rel": "bookmark"}]}]} {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_cleaning [0.195847s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node [0.230735s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_562_runbooks_runbook_id_get_project_manager [0.251726s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/8e3c1efd-f333-43f9-ad2d-418cf8290b92 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ad127bf8-29c6-4dd5-b539-4304b2fb0c0c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "8e3c1efd-f333-43f9-ad2d-418cf8290b92", "created_at": "2025-05-07T23:00:49.032991+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/8e3c1efd-f333-43f9-ad2d-418cf8290b92", "rel": "self"}, {"href": "http://localhost/runbooks/8e3c1efd-f333-43f9-ad2d-418cf8290b92", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_get_physical_disks [0.774177s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_deploying [0.266478s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_update_raid_config_missing_raid_type [0.050420s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_validate_raid_config [0.041023s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node_retry [0.349541s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_validate_raid_config_scsi [0.042414s] ... ok {3} ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_volume_create_error_handler [0.042712s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_563_project_manager_patch_runbook [0.421385s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/541b2be8-2d46-4eee-a636-3a06e03cb9a6 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2e7e8020-db41-4e0a-b7b5-634a3e372a91 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "541b2be8-2d46-4eee-a636-3a06e03cb9a6", "created_at": "2025-05-07T23:00:49.302069+00:00", "updated_at": "2025-05-07T23:00:49.597833+00:00", "name": "CUSTOM_NAME", "extra": {}, "public": false, "owner": "70e5e25a-2ca2-4cb1-8ae8-7d8739cee205", "disable_ramdisk": false, "links": [{"href": "http://localhost/v1/runbooks/541b2be8-2d46-4eee-a636-3a06e03cb9a6", "rel": "self"}, {"href": "http://localhost/runbooks/541b2be8-2d46-4eee-a636-3a06e03cb9a6", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__get_post_step_hook [0.055519s] ... ok {2} ironic.tests.unit.drivers.modules.ilo.test_raid.Ilo5RAIDTestCase.test_delete_configuration_with_read_raid_failed_cleaning [0.262767s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.PostStepHooksTest.test__get_post_step_hook_no_hook_registered [0.046997s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__post_step_reboot [0.067262s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeAdoptionTestCase.test_do_provisioning_action_manage_of_failed_adoption [0.302071s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.drivers.modules.test_agent_base.PostStepHooksTest.test__post_step_reboot_deploy [0.066133s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_with_read_raid_failed_deploying [0.205733s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_564_runbooks_project_member [0.274711s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2180796b-a9e1-4eb0-bd5d-7965ec4d3ca3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "78710ff7-d28f-4783-8ee2-b4feb63df724", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/78710ff7-d28f-4783-8ee2-b4feb63df724", "rel": "self"}, {"href": "http://localhost/runbooks/78710ff7-d28f-4783-8ee2-b4feb63df724", "rel": "bookmark"}]}]} {3} ironic.tests.unit.drivers.modules.test_agent_base.PostStepHooksTest.test__post_step_reboot_fail [0.109718s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.104589s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.PostStepHooksTest.test__post_step_reboot_fail_deploy [0.108247s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_raid_device.RaidDeviceTestCase.test_multiple_new_root_devices [0.112136s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test_continue_node_clean_automated [0.306880s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.drivers.modules.test_agent_base.PostStepHooksTest.test__post_step_reboot_fail_servicing [0.108784s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_565_runbooks_runbook_id_get_project_member [0.241105s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/3a8736c5-1ffe-4e4f-b07b-93428e72fd98 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-043e0b70-9ebc-48ab-a326-4ea31eaf6faf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "3a8736c5-1ffe-4e4f-b07b-93428e72fd98", "created_at": "2025-05-07T23:00:50.009796+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/3a8736c5-1ffe-4e4f-b07b-93428e72fd98", "rel": "self"}, {"href": "http://localhost/runbooks/3a8736c5-1ffe-4e4f-b07b-93428e72fd98", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_no_new_root_devices [0.100308s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.PostStepHooksTest.test__post_step_reboot_pregenerated_token [0.114425s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_raid_device.RaidDeviceTestCase.test_no_previous_inventory [0.091876s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.PostStepHooksTest.test_post_clean_step_hook [0.054587s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_fail_agent_token_required [0.043117s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_no_serials [0.100216s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_566_runbooks_list_project_reader [0.241398s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5708be06-aeab-4de5-b45f-452f4050d1bd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": [{"uuid": "aacc150f-5333-4569-91d9-39e82a43fe6d", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/runbooks/aacc150f-5333-4569-91d9-39e82a43fe6d", "rel": "self"}, {"href": "http://localhost/runbooks/aacc150f-5333-4569-91d9-39e82a43fe6d", "rel": "bookmark"}]}]} {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_fail_all_attempts [0.049333s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_one_timeout [0.034549s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort [0.337343s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_root_device_already_set [0.082055s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClientAttempts.test__command_succeed_after_two_timeouts [0.056709s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestLockDown.test_agent_already_down [0.038873s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestLockDown.test_okay [0.047523s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_raid_device.RaidDeviceTestCase.test_root_device_found [0.092389s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.GetInterfacesTestCase.test_get_interfaces [0.048336s] ... ok {3} ironic.tests.unit.drivers.modules.test_agent_client.TestLockDown.test_okay_with_fail_if_unavailable [0.057052s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_567_runbooks_runbook_id_get_project_reader [0.237409s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks/e9795483-041c-418d-94ae-c19f4b1162a6 WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-04f1db30-6d7d-4788-9c4c-7a2d361dcaa4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"uuid": "e9795483-041c-418d-94ae-c19f4b1162a6", "created_at": "2025-05-07T23:00:50.517774+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/e9795483-041c-418d-94ae-c19f4b1162a6", "rel": "self"}, {"href": "http://localhost/runbooks/e9795483-041c-418d-94ae-c19f4b1162a6", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "order": 1}]} {3} ironic.tests.unit.drivers.modules.test_agent_client.TestLockDown.test_timeout [0.046854s] ... ok {3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_bios [0.045203s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort_last_clean_step [0.301834s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.inspector.test_agent.InspectHardwareTestCase.test_managed_disable_power_off [0.101519s] ... ok {3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_bios_default [0.063791s] ... ok {3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_default [0.060963s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_568_runbooks_list_third_party_admin [0.229484s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/runbooks WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-51fdfafe-b810-46ec-b25b-b2e9647991f8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"runbooks": []} {3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_default_set [0.052805s] ... ok {3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_capabilities [0.039120s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_locked [0.225844s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info [0.039165s] ... ok {3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info_cap [0.041579s] ... ok {3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_for_deploy_using_instance_info_secure_boot [0.038733s] ... ok {3} ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_uefi [0.044502s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_569_project_reader_cannot_post_runbook [0.239296s] ... 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-3c91bf21-1f0d-45bf-9eb3-839d44c0157a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual [0.268201s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_cleaning_vif_port_id [0.095411s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.GetSingleNicTestCase.test_get_single_nic_with_provisioning_vif_port_id [0.049531s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.InspectHardwareTestCase.test_managed_ok [0.603252s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id [0.058730s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.InstanceInfoTestCase.test__check_disk_layout_unchanged [0.029386s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged_fails [0.032304s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_570_project_reader_cannot_patch_runbook [0.268305s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/35613bc2-e63d-4827-bc0b-6e58f815d9c8 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c36f92cb-90ee-4144-bc56-51651f49b99c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_configdrive [0.061489s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_managed_unversion_url [0.197939s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort [0.311449s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_good [0.064040s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_571_project_reader_cannot_set_runbook_owner [0.230198s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/b9c63727-221e-4e0f-80f1-c9ed01f8058c WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5121d5fa-4149-45ca-8fe2-8fafc2866203 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_disk [0.077370s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_unmanaged_disable_power_off [0.113519s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_unmanaged_disallowed [0.060497s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_gb [0.062105s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_preserve_ephemeral [0.042976s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort_last_clean_step [0.241540s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_572_project_reader_cannot_set_runbook_public [0.155568s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/cac7dbf7-291c-437d-b0d9-259454ffda2a WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e1c53b48-f15c-4920-abfe-314ad9302de4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_root_gb [0.064327s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_agent.InspectHardwareTestCase.test_unmanaged_ok [0.146765s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_instance_source [0.056153s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_root_gb [0.070336s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_non_image_deploy [0.057675s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_worker_pool_full [0.228455s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image [0.068743s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_573_project_reader_cannot_delete_runbook [0.282828s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/70194455-3ac4-4b53-bc16-afc6677c314d GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a3116390-0157-45f4-947e-6c3423080acc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_anaconda [0.106481s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_no_kernel [0.091607s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_574_project_member_cannot_post_runbook [0.236847s] ... 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-2278ac2a-fefc-414b-a1be-09e73fb6e4d7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_unicode_swap_mb [0.074082s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_wrong_state [0.293099s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_gb [0.099581s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_575_project_member_cannot_patch_runbook [0.186206s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/94ef232b-33fc-48fe-9f5d-c2e28c7fc153 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_NAME'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-40a123dd-41bb-4569-889c-d797c3f9ec13 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_576_project_member_cannot_set_runbook_owner [0.235145s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/1d8890d4-e7b6-4a22-b6c4-6b73d53a64ed WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d1657544-cd15-4e65-986e-954755b23d7f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.inspector.test_client.GetClientTestCase.test_get_client [1.070397s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_missing_format [0.535322s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_577_project_member_cannot_set_runbook_public [0.237142s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/dfe090ce-644f-4379-b57f-616156771157 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9bd21a7b-b1f8-4803-9b0f-bb7d7aa84724 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_false [0.110164s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_578_project_member_cannot_delete_runbook [0.206089s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/runbooks/e0bed24c-8845-4995-af11-51e416df4350 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a69c60bf-20a9-4813-ad2b-a11fc602b300 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:delete\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_true [0.128020s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_invalid_state [0.883353s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image [0.060690s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_579_project_manager_cannot_set_runbook_owner [0.160749s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/db027d5c-89ee-4a36-a93b-231c4fa3a5d6 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-65a60916-8f1b-4a50-99ac-e041b812a07e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image_missing_root [0.079272s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_maintenance [0.251699s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_580_project_manager_cannot_set_runbook_public [0.164494s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/69d6b171-385a-40fb-a0c0-9c734097054d WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e06bf9f4-b683-4913-949f-e04409ac5967 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_anaconda [0.195862s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_581_project_admin_cannot_set_runbook_owner [0.182404s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/eedfa829-dccb-424b-addf-f4b0c1a4fc80 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1c0cf56c-f59b-4498-a3ba-9f509177c7ce X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_network_validate_fail [0.322871s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_anaconda_img_checked [0.254186s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_582_project_admin_cannot_set_runbook_public [0.169091s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/141529a6-bf3d-40d9-a9c8-f726bb3d14b0 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-adbe93d3-502e-4039-ab80-2834c485f334 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_image [0.193406s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_583_service_cannot_patch_runbook_owner [0.149985s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/dd50b131-2fdb-467c-be96-ed2ac9bd3cd8 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7c68282a-a216-4eac-9763-ad26c6728504 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_ok [0.268094s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_image_checked [0.140031s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_584_service_cannot_patch_runbook_public [0.159622s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/b5f9e708-b257-4791-a565-18c855a9c8fc WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8d714f85-ec12-43a5-a4ee-2ca5abdf5f57 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_power_validate_fail [0.272884s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACProjectScoped.test_project_scoped_585_third_party_admin_cannot_patch_runbook_owner [0.185745s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/2d251cd5-b027-4ddf-92dc-508c2cc0c732 WITH [{'op': 'replace', 'path': '/owner', 'value': 'new_owner'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b2f8d9c6-f63a-4625-b39d-b2e4c84509a9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:owner\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image [0.233201s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACProjectScoped.test_project_scoped_586_third_party_admin_cannot_patch_runbook_public [0.160472s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/runbooks/5c6cbcbb-67f2-42b7-97fb-02ac6667bdc8 WITH [{'op': 'replace', 'path': '/public', 'value': True}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0256ee95-b0fe-42e5-9edc-64c5381e73fb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:runbook:update:public\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image_checked [0.241057s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_001_values ... SKIPPED: These are fake reference values for YAML templating {1} ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_worker_pool_full [0.370281s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_image_not_found [0.147797s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_client.GetClientTestCase.test_get_client_connection_problem [1.990671s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image [0.174434s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test_do_provision_action_unlocks_cleaning_automated [0.297447s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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( {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_002_nodes_post_admin [0.316042s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f6e55f5c-9b2f-4a71-9932-fc7bd7199634 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image_fmt_checked [0.168571s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test_do_provision_action_unlocks_cleaning_manual [0.281276s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_image_fmt_not_checked [0.182938s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.183285s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeCleanTestCase.test_do_provision_action_unlocks_deploying [0.324373s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_partition_image [0.146865s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.171130s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeServiceTestCase.test_continue_node_service [0.198002s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACScoped.test_rbac_legacy_003_nodes_post_member [0.816012s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4d7ad33f-2e38-4423-8dc3-82c0cd7feed7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_oci_url_remote_download [0.157480s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeServiceTestCase.test_continue_node_service_abort [0.252722s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_oci_url_remote_download_rebuild [0.144501s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_004_nodes_post_observer [0.315922s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8547c4d6-a757-4080-b97c-18a187b453e9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_continue_node_service_abort_last_service_step [0.185151s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_is_a_path [0.160920s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_005_nodes_get_node_admin [0.217857s] ... 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-761d0a8f-f010-4f06-a758-e60269b98664 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_redirect [0.149513s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeServiceTestCase.test_continue_node_service_locked [0.193585s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_redirect_not_path [0.125905s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_006_nodes_get_node_member [0.219805s] ... 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-04a552b0-d9f2-4966-8620-a9241680780e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_check_interface_capability [0.069800s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_client.GetClientTestCase.test_get_client_standalone [1.788377s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume [0.095447s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeServiceTestCase.test_continue_node_service_worker_pool_full [0.277018s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.inspector.test_interface.CheckStatusTestCase.test_exception_ignored [0.085845s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_007_nodes_get_node_observer [0.200858s] ... 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-f1185e86-1f67-4b77-999a-0b30a466b3df X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume_none [0.132546s] ... ok 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.inspector.test_interface.CheckStatusTestCase.test_not_check_inspecting [0.097975s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_not_finished [0.074659s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_008_nodes_get_node_other_admin [0.169017s] ... 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-65687eb9-028c-4cda-a9ce-be454048c0d7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot [0.103055s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeServiceTestCase.test_continue_node_service_wrong_state [0.284603s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.inspector.test_interface.CheckStatusTestCase.test_not_inspecting [0.087367s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_exception [0.084214s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.CheckStatusTestCase.test_not_inspector [0.084444s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false [0.082707s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_009_nodes_get_admin [0.199456s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e0a59592-8dd2-4c52-897f-31d72a738675 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_010_nodes_get_other_admin [0.065089s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-77f90dc7-e6c7-43d0-bcaf-88db824d8fe7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": []} {2} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_clean_up_failed [0.120780s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_011_nodes_detail_get_admin [0.068864s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a819d123-f322-4adc-b47d-6f54069f6639 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_error [0.058891s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot_false_fc_target [0.185320s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.CheckStatusTestCase.test_status_error_dont_store_inventory [0.056868s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_do_node_provision_action_unhold_service [0.367636s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACScoped.test_rbac_legacy_012_nodes_detail_get_member [0.117192s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-725dce05-4ea5-445f-8c7c-e565cd5c915d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_ok [0.064944s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_error [0.131202s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.CheckStatusTestCase.test_status_ok_store_inventory [0.032111s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.CheckStatusTestCase.test_status_ok_store_inventory_nostore [0.037077s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_013_nodes_detail_get_observer [0.144713s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cb61e2ad-3582-4eec-993a-87d98e5414bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_callback_endpoint [0.059100s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_callback_endpoint_mdns [0.040139s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_fc [0.178702s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.CommonFunctionsTestCase.test_get_callback_endpoint_no_loopback [0.057804s] ... ok {1} ironic.tests.unit.conductor.test_manager.DoNodeServiceTestCase.test_do_node_service [0.268844s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.inspector.test_interface.CommonFunctionsTestCase.test_get_callback_endpoint_override [0.048028s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_014_nodes_node_ident_get_admin [0.211331s] ... 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-c5142146-5b36-4932-9132-6f8cce70e718 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_populate_storage_driver_internal_info_iscsi [0.218036s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeServiceTestCase.test_do_node_service_maintenance [0.251982s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACScoped.test_rbac_legacy_015_nodes_node_ident_get_member [0.206733s] ... 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-e79f1a33-e23f-420e-a6c3-1522e22eaee0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_get_indicator_state [0.136536s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_tear_down_storage_configuration [0.211333s] ... ok 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.TestRBACScoped.test_rbac_legacy_016_nodes_node_ident_get_observer [0.157484s] ... 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-24febbdd-f435-4526-9522-3069f7e4ae3a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_get_supported_indicators [0.114820s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_bios [0.146531s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_017_nodes_node_ident_patch_admin [0.172037s] ... 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-b6b4c5d7-1f7e-4fcf-87a0-e213d8aadc8e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_get_properties [0.605167s] ... ok {1} ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_set_indicator_state [0.143071s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeout [0.070727s] ... ok {2} ironic.tests.unit.drivers.modules.inspector.test_interface.CommonFunctionsTestCase.test_validate_ok [0.069712s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_uefi [0.182230s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_018_nodes_node_ident_patch_member [0.142440s] ... 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-3ed11d3b-5d11-446d-a06d-d4c971cf1ee7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_disappears [0.094520s] ... ok {2} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_default_interfaces [0.128779s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_locked [0.067614s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_okay [0.134083s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exit_with_other_exception [0.096613s] ... ok {2} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_agent_rescue [0.128636s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_019_nodes_node_ident_patch_observer [0.226654s] ... 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-8c3f993a-4319-48cf-88eb-f2179e90ae8b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_some_other_exception [0.142125s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exiting_no_worker_avail [0.081347s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_anaconda_deploy_image_source [0.090116s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_no_acquire_after_lock [0.079907s] ... ok {2} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_cinder_storage [0.151197s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_020_nodes_node_ident_delete_admin [0.207162s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-abfe0b7b-57e3-49d2-9771-3a32377a61d8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_boot_iso_conflict [0.086998s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_not_mapped [0.076802s] ... ok {2} ironic.tests.unit.drivers.modules.intel_ipmi.test_intel_ipmi.IntelIPMIHardwareTestCase.test_override_with_shellinabox [0.124990s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_missing_stage2_id [0.078296s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_to_maintenance_after_lock [0.077338s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_worker_limit [0.079899s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_authorized [0.083642s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_021_nodes_node_ident_delete_member [0.203608s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d05143dd-e82d-46e5-870d-e9b575cc961e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration [0.154434s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ManagerDoSyncPowerStateTestCase.test_correct_power_state_on_upgrade_lock [0.080105s] ... ok {3} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_found [0.096741s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_error [0.084055s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_apply_configuration_failed [0.139151s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ManagerDoSyncPowerStateTestCase.test_get_power_state_fail [0.088578s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_022_nodes_node_ident_delete_observer [0.203661s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7c283863-af88-480f-8ce8-6230ddd4be44 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings [0.128962s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ManagerDoSyncPowerStateTestCase.test_maintenance_on_upgrade_lock [0.083255s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings_failed [0.099127s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded [0.116901s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_023_nodes_validate_get_admin [0.214259s] ... 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-9590fd71-103b-4fd9-993b-04b0ac9d9a4e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_factory_reset [0.113543s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded2 [0.119212s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_validate [0.089944s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ValidateImagePropertiesTestCase.test_validate_image_properties_invalid_image_href [0.580025s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_024_nodes_validate_get_member [0.221045s] ... 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-c69e6e91-e442-473f-b4a3-f9fb3ddffc50 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_local_boot [0.054161s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_fail [0.104962s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ValidateImagePropertiesTestCase.test_validate_image_properties_nonglance_image [0.075455s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_cd_ok [0.116416s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ValidateImagePropertiesTestCase.test_validate_image_properties_ramdisk_deploy [0.066640s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_025_nodes_validate_get_observer [0.220639s] ... 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-175334f5-301d-4601-939f-5bb3a9b92a06 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_both_clean_up [0.084634s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_fail [0.135074s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_clean_up_another_fs [0.089424s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_026_nodes_maintenance_put_admin [0.212555s] ... 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-8cf6660e-0079-4c10-82c5-7077c450e769 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__attach_virtual_fd_ok [0.131469s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_clean_up_fail [0.098675s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_no_clean_up [0.084556s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_one_clean_up [0.056950s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__cleanup_vmedia_boot_ok [0.138262s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_027_nodes_maintenance_put_member [0.209970s] ... 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-791265c9-5b2b-4360-94ef-f50ea56d551b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__find_param [0.052297s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_fail [0.092707s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__find_param_not_found [0.065793s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_cd_ok [0.092414s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bios [0.077235s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded_notify [0.932600s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso [0.092134s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_028_nodes_maintenance_put_observer [0.263302s] ... 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-e5bb6fe9-83ce-434b-b4de-3e2c5a44a43c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_fail [0.115922s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ManagerDoSyncPowerStateTestCase.test_no_power_sync_support [0.144551s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_with_instance_info [0.081239s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__detach_virtual_fd_ok [0.093649s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_default_boot_mode [0.084556s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_floppy_image_name [0.061155s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_power_state_sync_max_retries_gps_exception [0.121005s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__get_iso_name [0.051696s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_029_nodes_maintenance_delete_admin [0.223625s] ... 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-65c5e612-3c3f-4861-88e9-2b39a10e9da4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_extra_params [0.084708s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_retry_then_success [0.081085s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option [0.063282s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params [0.076488s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_config_option_non_existed_root [0.057821s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync [0.100199s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_deprecated [0.075648s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_030_nodes_maintenance_delete_member [0.195056s] ... 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-6bc063ba-9674-433c-a710-7ad39c4938be X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_defaults [0.106931s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_in_share [0.068944s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_driver_info [0.083076s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params [0.061326s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_notify [0.198490s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_driver_info_bios [0.073546s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params_in_conf [0.062225s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_bios [0.041641s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_031_nodes_maintenance_delete_observer [0.217806s] ... 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-f9fedf64-1b6b-48f4-82fb-e4f3d8d1db4b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_with_disable_power_off [0.091323s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync [0.071488s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_kernel_params_in_driver_info [0.118830s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync_failed [0.029357s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_cleaning [0.132796s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_not_set [0.045762s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_uefi [0.049947s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged [0.047086s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged_for_fake_node [0.035634s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_uefi [0.082908s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_validate_fail [0.030364s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_not_in_share [0.173118s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_vendor_detection [0.044797s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_wrong_provision_state_on_upgrade_lock [0.042796s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_032_nodes_management_boot_device_put_admin [0.358511s] ... 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-c0b4c125-e051-4646-927f-f6efc5ea30b0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_already_mapped [0.024485s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_with_node_external_http_url [0.145378s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_good [0.031341s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_no_free_worker [0.024527s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_node_locked [0.033725s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_invalid [0.205089s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_cleanup_floppy_image [0.089029s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_not_mapped [0.025027s] ... ok {1} ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_worker_limit [0.031532s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_cleanup_iso_image [0.086635s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_driver_info_with_iso_missing [0.123933s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_033_nodes_management_boot_device_put_member [0.258552s] ... 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-42ba2e51-0f5f-4c6c-b690-76f8655bb35a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test__check_inspect_wait_timeouts [0.126943s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_boot_iso [0.069986s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_boot_iso_user_supplied [0.036601s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_power_validate_fail [0.074315s] ... ok 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_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_deprecated [0.130599s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image [0.059093s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_validate_fail [0.075104s] ... ok 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_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image_binary_url [0.098178s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_034_nodes_management_boot_device_put_observer [0.230343s] ... 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-b649362e-79c9-4aed-be09-87bc623d84bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_name_ok [0.120466s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_file_url_ok [0.110548s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image_url [0.124877s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_worker_pool_full [0.188784s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_glance_ok [0.085599s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso [0.107988s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_035_nodes_management_boot_device_get_admin [0.234281s] ... 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-37440b72-101a-4000-bd8c-7da72e822327 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits [0.155952s] ... ok 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_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_http_ok [0.094444s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_existing_iso [0.130081s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_invalid_parameter_value [0.102130s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_https_ok [0.096876s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_036_nodes_management_boot_device_get_member [0.234794s] ... 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-2902cabe-4371-4ce3-b2ab-3ff42afaf3e9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_existing_iso_vendor_prefix [0.123425s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_locked [0.100608s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_invalid [0.156744s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_not_found [0.111299s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_external_ip [0.139822s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_uuid_ok [0.084788s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_without_boot_iso_ok [0.084523s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_replace [0.139942s] ... ok 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.TestRBACScoped.test_rbac_legacy_037_nodes_management_boot_device_get_observer [0.282277s] ... 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-a16583c0-2e3c-47aa-93b2-847ae1257a33 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_network_data [0.151096s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_tls [0.149154s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits [0.185848s] ... ok 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_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_create_ok [0.211142s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_038_nodes_management_boot_device_supported_get_admin [0.297194s] ... 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-0031a36c-ecde-46f1-b10e-5b064ad6f0ee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image [0.150425s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_fetch_ok [0.161418s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_all [0.170353s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image_file [0.123322s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_file [0.124565s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_empty [0.192209s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image_prefix [0.131813s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_039_nodes_management_boot_device_supported_get_member [0.269355s] ... 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-dcfcd1ab-4140-46ca-8a7d-05f6367bf5f6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image [0.114787s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_floppy_image_exception [0.113917s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_locked [0.183395s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image [0.169990s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__remove_share_file [0.099485s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_040_nodes_management_boot_device_supported_get_observer [0.264228s] ... 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-1e80e693-8e26-4f0f-a66b-77ec7bdc3df0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_publish_with_config_external_http_url [0.132791s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_not_found [0.199847s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_publish_with_node_external_http_url [0.086537s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_with_parameters [0.162033s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image_with_external_ip [0.078117s] ... ok {1} ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_trait_not_found [0.154564s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_041_nodes_management_inject_nmi_put_admin [0.243222s] ... 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-259018ab-b110-4508-8ef5-5526754a5688 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_without_parameters [0.140456s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image [0.111014s] ... ok {1} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_1_nodes_8_workers [0.096548s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_custom_cache [0.087046s] ... ok {1} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_6_nodes_8_workers [0.095581s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_deploy [0.195057s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_file [0.108826s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_042_nodes_management_inject_nmi_put_member [0.270600s] ... 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-f0181eae-ff41-4b04-89dc-37d9b4b274ef X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_1_worker [0.088475s] ... ok {1} ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_9_nodes_8_workers [0.080633s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_with_file_rescue [0.149998s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_from_swift [0.116037s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed [0.110031s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_043_nodes_management_inject_nmi_put_observer [0.230152s] ... 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-46f24f06-fe52-42e3-bd57-81967efb2967 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_local [0.145803s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed_deprecated [0.142964s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_attach_boot_iso_if_needed_on_rebuild [0.106192s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_044_nodes_states_get_admin [0.234075s] ... 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-c7b87e5a-a61f-4e87-9458-f4c03af66c6a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_local_external_http_url [0.243335s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_exception [0.080530s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_ok [0.076600s] ... ok {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_swift_noop [0.142303s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_045_nodes_states_get_member [0.203617s] ... 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-7b4653f1-ba8e-4b62-970e-7ad66d35c002 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_parse_deploy_info_ok [0.161981s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_remote_image_swift_schema [0.141157s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test__get_inspection_data_from_swift [0.157865s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_046_nodes_states_get_observer [0.285594s] ... 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-47ad592c-0227-4e6c-9656-78fc2780b85b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_setup_vmedia_with_image_service_deploy [0.188745s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.148987s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_047_nodes_states_power_put_admin [0.239625s] ... 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-e21d9170-c2f2-48a4-bdbc-9ebc4eca9eb9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_instance [0.191497s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ParallelPowerSyncTestCase.test__sync_power_states_node_prioritization [1.243587s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk [0.187252s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.VifTestCase.test_vif_attach [0.210669s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.VifTestCase.test_vif_attach_node_locked [0.141621s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_clean_up_ramdisk_rescue [0.251663s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.VifTestCase.test_vif_attach_raises_network_error [0.206906s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test__get_inspection_data_from_swift_exception [0.958147s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_get_properties [0.187730s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test__store_inspection_data_in_swift [0.164797s] ... ok {1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_portgroup_physnet_inconsistent [0.180174s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IRMCPXEBootBasicTestCase.test_prepare_instance [0.196402s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_db [0.130230s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_048_nodes_states_power_put_member [1.056522s] ... 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-400704bd-29e1-4291-b2d6-17b2aa40a489 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_vif_invalid_for_attach [0.188328s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_db_exception [0.110700s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_active [0.215461s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_nostore [0.103780s] ... ok {1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_validate_error [0.216816s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_swift [0.098073s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_049_nodes_states_power_put_observer [0.276426s] ... 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-d36e3591-5054-4a0f-abe3-f93cc85bb4af X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_get_inspection_data_swift_exception [0.108313s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_kickstart [0.273623s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.VifTestCase.test_vif_detach [0.186606s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_store_inspection_data_db [0.109468s] ... ok {3} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_store_inspection_data_nostore [0.055262s] ... ok {1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_node_locked [0.120105s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_050_nodes_states_boot_mode_put_admin [0.263337s] ... 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-0d5ecaff-7f91-467b-b711-3fc37cd8ef54 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_inspect_utils.IntrospectionDataStorageFunctionsTestCase.test_store_inspection_data_swift [0.074998s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_kickstart_bios [0.287642s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupCacheTestCase.test_clear [0.098498s] ... ok {1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_raises_network_error [0.153005s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupCacheTestCase.test_new_value [0.060800s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_051_nodes_states_boot_mode_put_member [0.269819s] ... 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-eb731a3a-431a-4508-a26c-d3506ad17556 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupCacheTestCase.test_replace_with_empty [0.060177s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_lenovo [0.207978s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.VifTestCase.test_vif_detach_validate_error [0.174826s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_fail [0.055860s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_no_ipmitool [0.062761s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_pass [0.055098s] ... ok {1} ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_list [0.135938s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_052_nodes_states_boot_mode_put_observer [0.202444s] ... 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-f71d31ea-fb7e-4f9d-963d-f7476b995ae6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_exists [0.192023s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_fail [0.060323s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_no_ipmitool [0.054056s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_pass [0.065083s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_053_nodes_states_secure_boot_put_admin [0.174072s] ... 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-9a7f7ba2-01eb-4e44-a155-b5e1686dfcfd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_attach_virtual_media_http [0.194332s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_fail [0.033945s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_no_ipmitool [0.037069s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_pass [0.032604s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_fail [0.022612s] ... ok {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_no_ipmitool [0.020151s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_054_nodes_states_secure_boot_put_member [0.209936s] ... 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-91fea745-0aa3-41d0-b754-d71133f3da22 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_pass [0.071903s] ... ok {1} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_attach_virtual_media_local [0.223292s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_ipxe.iPXEBootBaseUtils.test__node_set_boot_device_for_network_boot [0.088537s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_noop.NoInterfacesTestCase.test_bios [0.038675s] ... ok {3} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_console [0.027224s] ... ok {3} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_inspect [0.024450s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_055_nodes_states_secure_boot_put_observer [0.196244s] ... 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-735c6684-7ee9-4d7f-a040-01e8def69bc6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_do_attach_virtual_media [0.207516s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_noop.NoInterfacesTestCase.test_load_by_name [0.050194s] ... ok {3} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_rescue [0.051110s] ... ok {3} ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_vendor [0.037827s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_056_nodes_states_provision_put_admin [0.206742s] ... 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-45c5ec05-6ff7-45e7-bec7-37c9da28887d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_do_attach_virtual_media_fails_on_attach [0.197418s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IRMCPXEBootBasicTestCase.test_prepare_instance_ramdisk_pxe_conf_missing [0.802411s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.PXEAnacondaDeployTestCase.test_deploy [0.232212s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_057_nodes_states_provision_put_member [0.195017s] ... 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-ac853303-e499-4a6b-8321-6c49dc75ca1a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_manager.VirtualMediaTestCase.test_do_attach_virtual_media_fails_on_prepare [0.178044s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IRMCPXEBootBasicTestCase.test_prepare_ramdisk [0.212888s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.094896s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_end [0.181533s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_058_nodes_states_provision_put_observer [0.170543s] ... 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-fddc0790-372a-456e-95bb-003b245e751d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits_replace [0.089706s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_bios [0.188710s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.PXEAnacondaDeployTestCase.test_heartbeat_deploy_error [0.143736s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_can_send_create_port_False [0.079907s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_heartbeat_deploy_start [0.055898s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_can_send_create_port_True [0.071464s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_059_nodes_states_raid_put_admin [0.216882s] ... 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-6dca3b47-bb76-43db-8991-3cb0821d2268 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_false [0.097023s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare [0.129502s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_can_send_rescue_true [0.080690s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_cleaning [0.280641s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.PXEAnacondaDeployTestCase.test_prepare_active [0.099767s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_change_node_boot_mode [0.104671s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_060_nodes_states_raid_put_member [0.306545s] ... 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-850aa717-76fb-4f7f-8a30-c7fcd8f19262 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_prepare_cleaning [0.131150s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_change_node_power_state [0.117053s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes [0.279643s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_change_node_secure_boot [0.090166s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_clean [0.086644s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_061_nodes_states_raid_put_observer [0.281185s] ... 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-76c2800a-fad1-47c7-bfe1-f5ec096c895a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_deploy [0.088482s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.243179s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_continue_node_service [0.136310s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEAnacondaDeployTestCase.test_reboot_to_instance [0.453764s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_062_nodes_states_console_get_admin [0.247737s] ... 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-f4bfa963-f568-47dd-8fed-418c6f652b00 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_allocation [0.124819s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_rescue [0.260306s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_maintenance [0.196187s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_create_node [0.113946s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_not_retry_with_token [0.052279s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_063_nodes_states_console_get_member [0.253905s] ... 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-6ef9133d-7b21-4ae5-a67c-6ba4f6abef1f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_recent_power_change [0.051703s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_port [0.107901s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_retry [0.144702s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_rescue_bios [0.307207s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_destroy_allocation [0.123830s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_node [0.101560s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_064_nodes_states_console_get_observer [0.286049s] ... 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-7be6c0a0-d0fd-4fbe-b9f0-a5faf70d3f0c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_wrong_state [0.160730s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_destroy_portgroup [0.088837s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_connector [0.087010s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_not_called [0.331092s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_timeouts [0.208618s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_target [0.094018s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_065_nodes_states_console_put_admin [0.301750s] ... 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-f8c5dac7-9c84-43ba-8f6c-65d6a4630b2c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_clean [0.077171s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_instance [0.175432s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy [0.101107s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_bm [0.246345s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_066_nodes_states_console_put_member [0.168490s] ... 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-54c70b6c-62f9-4a1c-9532-6806cec33e35 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk [0.127774s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy_with_deploy_steps [0.122102s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue [0.059790s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_service [0.057091s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.275335s] ... ok 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_pxe.PXEBootTestCase.test_clean_up_ramdisk_rescue [0.209793s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_tear_down [0.144333s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_067_nodes_states_console_put_observer [0.368349s] ... 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-7473d1cf-b231-4134-a14c-d664f46698d7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_get_properties [0.144420s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue [0.125068s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios [0.313478s] ... ok 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_rpcapi.RPCAPITestCase.test_driver_vendor_passthru [0.130179s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance [0.195197s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_068_nodes_vendor_passthru_methods_get_admin [0.331485s] ... 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-d6fd7995-038a-4e46-a2d7-34b9a7314b06 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_boot_device [0.117563s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_conductor_for [0.102096s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_active [0.248169s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.337464s] ... ok 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_rpcapi.RPCAPITestCase.test_get_console_information [0.100748s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_069_nodes_vendor_passthru_methods_get_member [0.261814s] ... 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-bd508ea9-fe14-481e-a8d8-1ecee2c0b359 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_properties [0.095596s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_vendor_passthru_methods [0.104788s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_indicator_state [0.028384s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_kickstart [0.298495s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_node_vendor_passthru_methods [0.023881s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_node_with_token [0.022781s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_070_nodes_vendor_passthru_methods_get_observer [0.231609s] ... 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-c3d45616-f337-4c0c-86b1-f0e1fb7974c9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_raid_logical_disk_properties [0.024765s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_uefi [0.302008s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic [0.043247s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic_no_conductors [0.046839s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_boot_devices [0.028928s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_kernel [0.127932s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_indicators [0.027941s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_doesnt_cache [0.067806s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_071_nodes_vendor_passthru_get_admin [0.236365s] ... 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-78bda0f9-3479-4be0-8c18-00b5aa25efe7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_doesnt_cache [0.047260s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_kickstart_bios [0.347043s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_known_driver [0.050859s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_fail_missing_deploy_ramdisk [0.197116s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_072_nodes_vendor_passthru_get_member [0.213878s] ... 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-5d4d83aa-9dff-42b1-a831-8a3327ad1bf9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_unknown_driver [0.129183s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_lenovo [0.277732s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IRMCPXEBootBasicTestCase.test_validate_fail_no_port [0.296662s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_073_nodes_vendor_passthru_get_observer [0.194388s] ... 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-e6bbfbcf-34b4-499f-8f73-df9feaa41d48 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_known_driver [0.186805s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_unknown_driver [0.142565s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_074_nodes_vendor_passthru_post_admin [0.191375s] ... 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-8b589ac4-2119-4386-8361-10905e748431 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good [0.213380s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat [0.112277s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat_agent_token [0.115416s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_good_whole_disk_image [0.180496s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_075_nodes_vendor_passthru_post_member [0.204533s] ... 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-92dba3fd-aec0-4c4e-9389-9234a48e6ecf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inject_nmi [0.066896s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inspect_hardware [0.081507s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_inspection [0.145024s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call [0.071680s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_expected_exception [0.068653s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_inspection_no_inspection_ramdisk [0.145700s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_host_mismatch [0.057487s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_host_mismatch_with_rpc_disabled [0.073772s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_kickstart_fail_http_url_not_set [0.154779s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_076_nodes_vendor_passthru_post_observer [0.438842s] ... 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-caacf924-5624-4224-b92e-ea765ef00f32 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_no_conductor_with_rpc_disabled [0.066608s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_with_rpc_disabled [0.088600s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_kickstart_missing_stage2_id [0.161205s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_cast [0.067243s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_no_image_source_for_local_boot [0.061725s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_non_local [0.073266s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_cast_error [0.110059s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_077_nodes_vendor_passthru_put_admin [0.320801s] ... 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-c5bf7315-73ba-41d3-8f35-8fa97e27778f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_skip_check_write_image_false [0.039884s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_exists [1.270461s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_object_action [0.104995s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_clean_up_instance [0.083559s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action_invalid_version [0.060966s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_instance [0.102455s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_object_backport_versions [0.090044s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_078_nodes_vendor_passthru_put_member [0.238395s] ... 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-a4cdeea8-335b-46cd-8046-1bad23facfc7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_missing [0.256927s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IRMCPXEBootTestCase.test_prepare_ramdisk_with_backup_bios [0.130890s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IRMCPXEBootTestCase.test_prepare_ramdisk_without_backup_bios [0.180095s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_079_nodes_vendor_passthru_put_observer [0.346547s] ... 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-cc6b78ad-e8f1-42df-b03a-cc4d8e07878f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test__configure_vmedia_boot [0.147649s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.PXEBootTestCase.test_prepare_ramdisk [0.357399s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IRMCVirtualMediaBootTestCase.test_clean_up_instance [0.117623s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot ... SKIPPED: bug #2025424 {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions_invalid_version [0.585513s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions [0.071257s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_080_nodes_vendor_passthru_delete_admin [0.291710s] ... 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-f2096785-3c55-4274-8b64-bdf22bc0ec9c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_with_secure_boot_false [0.151051s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_object_class_action_versions_invalid_version [0.070892s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_bios [0.304154s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits [0.056264s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits_all [0.050851s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_instance_without_secure_boot [0.152149s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_081_nodes_vendor_passthru_delete_member [0.234974s] ... 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-7d86217b-bf22-44e6-bb4e-68451a146b8d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_rpc_disabled [0.085658s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_ramdisk [0.103623s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_serialized_instance_has_uuid [0.064973s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_cleaning [0.285096s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_boot_device [0.083086s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_082_nodes_vendor_passthru_delete_observer [0.210983s] ... 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-f62db5b4-ba4e-4fcd-a054-0b2a43ce08e1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_console_mode [0.058727s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_partition_image [0.202055s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_indicator_state [0.081211s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_target_raid_config [0.065727s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes [0.265637s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IRMCVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image [0.189248s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot ... SKIPPED: bug #2025424 {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_083_nodes_traits_get_admin [0.318392s] ... 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-e915e42f-80d5-4e07-96db-1249ff2cccfb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_node [0.166450s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_with_secure_boot_false [0.160475s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.PXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.236389s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_port [0.138509s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_without_secure_boot [0.136690s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_084_nodes_traits_get_member [0.250803s] ... 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-a2b11f27-a3fc-4e5a-a03d-bba3a91b05e6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_portgroup [0.145829s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue [0.186682s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning [0.165988s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_connector [0.135225s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_085_nodes_traits_get_observer [0.269392s] ... 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-cc38ac01-5d12-43dd-a633-0e7cf80d87f1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_deploying [0.158841s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_target [0.098406s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue_bios [0.252017s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_rescuing [0.093923s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_validate_driver_interfaces [0.102068s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vendor_passthru [0.072750s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_086_nodes_traits_put_admin [0.250730s] ... 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-76e62e9b-2381-400d-9074-cd40d8b7f946 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_attach [0.096429s] ... ok {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called [0.280131s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_not_deploying_not_cleaning [0.254703s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_detach [0.116155s] ... ok {1} ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_list [0.088012s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_087_nodes_traits_put_member [0.310327s] ... 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-5d88fd9e-7d32-42be-b0b0-3a8a06817829 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm [0.300700s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceAbortTestCase.test__do_node_cleanhold_abort_tear_down_fail [0.219215s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IRMCVirtualMediaBootTestCase.test_remote_image_share_type_values [0.363657s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate [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( {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_088_nodes_traits_put_observer [0.300194s] ... 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-fdaa48ff-f52a-4668-af14-1b0e9cd36c18 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue [0.107201s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceAbortTestCase.test__do_node_service_abort_tear_down_fail [0.224096s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IRMCVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk [0.083331s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.369833s] ... ok 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_boot.IRMCVirtualMediaBootTestCase.test_validate_rescue_ramdisk_not_exist [0.050658s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_false [0.018045s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_true [0.026429s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_get_properties [0.130303s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceAbortTestCase.test_do_node_service_abort_early [0.269534s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.IRMCManagementTestCase.test_management_interface_detect_vendor_ipmi [0.131246s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios [0.414482s] ... ok 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_servicing.DoNodeServiceAbortTestCase.test_do_node_service_abort_with_step [0.234729s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.IRMCManagementTestCase.test_management_interface_detect_vendor_redfish [0.127960s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_exception [0.101040s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_ipmitool_ng_redfish [0.126805s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_clean_step_automated_execute_fail [0.246340s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.320490s] ... ok 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.TestRBACScoped.test_rbac_legacy_089_nodes_traits_delete_admin [0.952592s] ... 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-6aaec906-49ac-42e1-a124-0d201b6ed700 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_ipmitool_ok_ipmi [0.127964s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ng_ipmi [0.112224s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_090_nodes_traits_delete_member [0.153009s] ... 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-d5763459-5656-4cef-9315-0acec502be1e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_uefi [0.281730s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ng_redfish [0.132264s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_automated_fail_in_tear_down_service [0.369294s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.PXEBootTestCase.test_validate_fail_missing_deploy_kernel [0.143805s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_091_nodes_traits_delete_observer [0.226349s] ... 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-048bbb58-410f-427c-8eff-c5a58d47fcaa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ok_ipmi [0.150850s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_automated_last_step_noop [0.177740s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.PXEBootTestCase.test_validate_fail_missing_deploy_ramdisk [0.136846s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ok_redfish [0.123251s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_092_nodes_traits_trait_put_admin [0.161396s] ... 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-2de69354-551c-42f7-b5e0-9b04e780604e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_port [0.157837s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_supported_boot_devices_ipmi [0.125300s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_automated_no_steps [0.314904s] ... ok 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.TestRBACScoped.test_rbac_legacy_093_nodes_traits_trait_put_member [0.212797s] ... 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-15bc900c-79f2-4765-87f1-56fa01155bbd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good [0.163845s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_supported_boot_devices_redfish [0.178513s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.PXEBootTestCase.test_validate_good_whole_disk_image [0.145376s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_bad_step_return_value [0.233845s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.IRMCManagementTestCase.test_management_interface_inject_nmi_fail [0.184531s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_094_nodes_traits_trait_put_observer [0.265292s] ... 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-bdbbd4c8-1813-4bfb-ba9d-02134f2fa952 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_inspection [0.187216s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.IRMCManagementTestCase.test_management_interface_inject_nmi_ok [0.128902s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_next_service_step_manual_last_step_noop [0.223813s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_095_nodes_traits_trait_delete_admin [0.193401s] ... 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-b8867740-2992-45f6-8c0a-b41bc7bc46c0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_restore_irmc_bios_config [0.094674s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.PXEBootTestCase.test_validate_inspection_no_inspection_ramdisk [0.227476s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ng_ipmi [0.156877s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_096_nodes_traits_trait_delete_member [0.185465s] ... 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-c381d509-f833-4a4e-88c7-01cf2f6e7ffb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service [0.247312s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.PXEBootTestCase.test_validate_kickstart_fail_http_url_not_set [0.239872s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_automated_network_validate_fail [0.255431s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_097_nodes_traits_trait_delete_observer [0.308104s] ... 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-6e08e451-0aff-4c20-8d16-83a90e61b707 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_kickstart_missing_stage2_id [0.284379s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_automated_power_validate_fail [0.241220s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_098_nodes_vifs_get_admin [0.258632s] ... 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-b26581bd-636f-4d53-a93a-262a4e2b729e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_no_image_source_for_local_boot [0.152566s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_bios_ipmi [0.670614s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_disable_ramdisk [0.251611s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.PXEBootTestCase.test_validate_non_local [0.173148s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_099_nodes_vifs_get_member [0.280053s] ... 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-58fe5757-51cb-40ec-a72b-344544d1fe10 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_manual_network_validate_fail [0.224066s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.PXEBootTestCase.test_validate_skip_check_write_image_false [0.211462s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_100_nodes_vifs_get_observer [0.238509s] ... 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-e3ef3c7c-d6a8-45b3-932c-e72953a094ad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo [0.057424s] ... ok {3} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_description_invalid [0.051712s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_manual_power_validate_fail [0.154667s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_empty_dict [0.072038s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_101_nodes_vifs_post_admin [0.184569s] ... 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-c85a4983-0d6c-4f96-81c6-2d8aaa1643f9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_network_error_fail [0.155463s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_missing_description [0.119234s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_cdrom_ipmi [0.730040s] ... ok 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.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_not_dict [0.047451s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_102_nodes_vifs_post_member [0.174418s] ... 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-dea0c31b-dfaf-4e87-90a7-8c0f947d80b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_required_invalid [0.077750s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_prepare_service_active [0.175222s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_unknown_key [0.061516s] ... ok {3} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_not_dict [0.060845s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_103_nodes_vifs_post_observer [0.172044s] ... 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-754431ba-6e11-4cc3-bd34-d857eb9c0017 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_all_args [0.047448s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_prepare_service_fail [0.186412s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_base.CleanStepDecoratorTestCase.test_clean_step_bad_abortable [0.080789s] ... ok {3} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo [0.063246s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_104_nodes_vifs_node_vif_ident_delete_admin [0.241913s] ... 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-434d881c-71db-4eb7-9984-b282dacf6b09 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_priority [0.061590s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_prepare_service_wait [0.222586s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_base.CleanStepDecoratorTestCase.test_clean_step_priority_only [0.079257s] ... ok {3} ironic.tests.unit.drivers.test_base.CleanStepTestCase.test_get_and_execute_clean_steps [0.060299s] ... ok {3} ironic.tests.unit.drivers.test_base.DeployStepTestCase.test_get_and_execute_deploy_steps [0.054129s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_105_nodes_vifs_node_vif_ident_delete_member [0.234945s] ... 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-c95a275e-b5c2-4ba1-8390-5ced06d55d56 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_disk_ipmi [0.765367s] ... ok 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.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration [0.094415s] ... ok {3} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration_delete_existing [0.094189s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test__do_node_service_steps_fail [0.374058s] ... ok 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.test_base.RAIDInterfaceTestCase.test_apply_configuration_invalid [0.095962s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_106_nodes_vifs_node_vif_ident_delete_observer [0.293170s] ... 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-5600b13e-7664-468c-9509-767c3cdaf279 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_get_logical_disk_properties [0.067281s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_continue_node_service [0.199666s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_continue_node_service_no_skip_step [0.245499s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_107_nodes_management_indicators_get_admin [0.409394s] ... 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-45fed1f1-28c7-465e-aecc-dbf613656bfe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_pxe_ipmi [0.811384s] ... ok 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.api.test_acl.TestRBACScoped.test_rbac_legacy_108_nodes_management_indicators_get_member [0.393618s] ... 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-083691c4-516b-4a48-99f7-8b46ba852cfa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_all [0.508038s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_safe_ipmi [0.425360s] ... ok 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.drivers.test_base.RAIDInterfaceTestCase.test_validate [1.040150s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interfase_set_boot_device_fail_redfish [0.080348s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_109_nodes_management_indicators_get_observer [0.302877s] ... 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-5cfdf5be-b204-4675-96c6-b0faa7e72410 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_no_target_raid_config [0.059735s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interfase_set_boot_device_success_redfish [0.068830s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_base.RAIDInterfaceTestCase.test_validate_raid_config [0.096186s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_ipmi_fail [0.059225s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_all_disable_ramdisk [0.414515s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.IRMCManagementTestCase.test_validate_ipmi_success [0.098086s] ... ok {3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_boot_mode_default_impl [0.098435s] ... ok {0} 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. {2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_redfish_fail [0.050040s] ... ok {3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_indicator_state_default_impl [0.090182s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate_redfish_success [0.049454s] ... ok {3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_mac_addresses [0.069781s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_fail_invalid [0.089311s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_fail_missing [0.055095s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_base.TestManagementInterface.test_get_supported_boot_modes_default_impl [0.083245s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_collect_logs [0.328359s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.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. {2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_raise_http_success [0.088776s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_base.TestManagementInterface.test_get_supported_indicators_default_impl [0.093025s] ... ok {3} ironic.tests.unit.drivers.test_base.TestManagementInterface.test_inject_nmi_default_impl [0.103184s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_continue_from_last_cleaning [0.208697s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_raise_https_success [0.145370s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_base.TestManagementInterface.test_set_boot_mode_default_impl [0.072544s] ... ok {0} 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.drivers.test_base.TestManagementInterface.test_set_indicator_state_default_impl [0.060005s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_verify_http_s_connection_and_fw_ver_success [0.096407s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.043397s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning [0.204115s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_invalid_target_state [0.076610s] ... ok {3} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_default_interfaces [0.138123s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_113_portgroups_get_admin [0.224404s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-40301e7d-fda1-4e13-bb39-d8b1aab448af X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_power_off_ok [0.103865s] ... ok {3} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties [0.102243s] ... ok {3} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties_none [0.086649s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_agent_busy [0.247449s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.132116s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_114_portgroups_get_member [0.226911s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-91458ba6-82c8-4dcc-9e85-870cfe4e8a5b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_supported_interfaces [0.089300s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_ilo.IloHardwareTestCase.test_default_interfaces [0.060234s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_reboot_ok [0.163064s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_automated_first_step_async [0.233360s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.085251s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_snmp_exception [0.040084s] ... ok {3} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_agent_rescue [0.209896s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.043156s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok [0.043515s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_115_portgroups_get_observer [0.406249s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c226fa19-3eab-49ea-b00d-551b4f0e1800 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_power_off [0.085415s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_handles_hold_from_active [0.288898s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_ilo.IloHardwareTestCase.test_override_with_inspector [0.265535s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_reboot [0.140746s] ... ok {2} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_timeout [0.128445s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_handles_hold_from_wait [0.254357s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_ilo.IloHardwareTestCase.test_override_with_no_bios [0.234658s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_116_portgroups_post_admin [0.428825s] ... 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-99ad468b-43d8-4d8a-8641-58a064f4a0a2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_pxe [0.156369s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_manual_first_step_async [0.242362s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestCommonFunctions.test__get_free_portgroups_and_ports_all_physnets [0.296108s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestCommonFunctions.test__get_free_portgroups_and_ports_flat [0.138675s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_oob_reboot [0.203786s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_snmp.SNMPHardwareTestCase.test_default_interfaces [0.221004s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron [0.062252s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron_missed [0.062980s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_117_portgroups_post_member [0.429317s] ... 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-1de21d82-c056-4c4b-aab9-88747b238138 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_fake_management [0.265391s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_oob_reboot_fail [0.300566s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_supported_missing [0.148859s] ... ok {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_next_service_step_oob_reboot_last_step [0.212374s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_physnet [0.445540s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_supported_set [0.146525s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_118_portgroups_post_observer [0.484124s] ... 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-58ce7a92-d757-4b5e-a19e-d85485a32aa4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_uuid [0.157969s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_missing [0.130546s] ... ok {3} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_no_remove_default [0.109506s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_119_portgroups_detail_get_admin [0.334047s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f7208b8a-a29a-4f0f-ba53-526e1cf60c04 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_no_remove_non_default [0.105616s] ... ok {3} ironic.tests.unit.objects.test_allocation.TestConvertToVersion.test_owner_unsupported_set_remove [0.117760s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_physnets [0.427275s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_create [0.149741s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_120_portgroups_detail_get_member [0.360624s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3337e044-0897-4068-a160-6034b44c1918 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_bad_id_and_uuid [0.079798s] ... ok {3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_id [0.099182s] ... ok {3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_uuid [0.088268s] ... ok {3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_list [0.091984s] ... ok {3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_payload_schemas [0.079241s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_121_portgroups_detail_get_observer [0.378155s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-398fd9eb-767b-4479-a930-1dde66cb8f72 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_refresh [0.078279s] ... ok {3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save [0.117763s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_port_physnets [0.746250s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_servicing.DoNodeServiceTestCase.test_do_node_service_steps_fail_poweroff [1.482679s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save_after_refresh [0.164537s] ... ok {3} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_create [0.139457s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_122_portgroups_portgroup_ident_get_admin [0.504609s] ... 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-9a9f9eb2-eab3-4958-8e94-2b25c7844984 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_destroy [0.120694s] ... ok {1} ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_instance_deploy_failure [0.337985s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet1 [0.485259s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_id [0.103149s] ... ok {3} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_name [0.122144s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_123_portgroups_portgroup_ident_get_member [0.354727s] ... 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-c54da4fa-65c5-491c-82d9-f55e7682fae1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet2 [0.208205s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.246816s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_get_by_uuid [0.126951s] ... ok {3} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list [0.135715s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet3 [0.239978s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_ok [0.250115s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_list_by_names [0.146309s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_124_portgroups_portgroup_ident_get_observer [0.436249s] ... 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-987b5242-0eb6-48c8-a5f9-b489821e09ee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_refresh [0.132763s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_port_uuid [0.273876s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_skip_missing [0.257300s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_deploy_template.TestDeployTemplateObject.test_save [0.141495s] ... ok {3} ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce [0.107381s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_all_steps [0.222557s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestCommonFunctions.test__get_free_portgroups_and_ports_portgroup_uuid [0.287933s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_bad_values [0.130737s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_125_portgroups_portgroup_ident_patch_admin [0.436845s] ... 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-6f19fdd0-5831-49da-87ec-7aefa3aeaad8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_nullable_translation [0.103283s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_disable_core_steps [0.282463s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce [0.116580s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_portgroup_uuid_attached_vifs [0.294079s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce_bad_values [0.115887s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_duplicate_template_and_user_steps [0.157859s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestCommonFunctions.test_get_free_port_like_object_ignores_empty_portgroup [0.179294s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_bad_value [0.106062s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_126_portgroups_portgroup_ident_patch_member [0.446757s] ... 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-4d5866be-1338-43a9-a112-d5a63f0d48b9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_duplicate_template_steps [0.157549s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_good_value [0.099842s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test__validate_property_values_success [0.107329s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_insecure [0.124491s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_standalone_portgroup [0.373386s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeDeployStepsTestCase.test__get_all_deployment_steps_error [0.269809s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_127_portgroups_portgroup_ident_patch_observer [0.407890s] ... 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-0bf19afe-d6cb-4f09-834b-d331bb044ece X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_no_matching_physnets [0.096896s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure [0.140131s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_steps [0.152923s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestCommonFunctions.test_get_free_port_like_object_nothing_free [0.088836s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_configdrive_as_dict [0.112864s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_first [0.091436s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_template_and_driver_steps [0.170548s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_with_configdrive [0.116420s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_physnet_match_first [0.077428s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_128_portgroups_portgroup_ident_delete_admin [0.336023s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-231ad763-6394-4cac-bdd0-b348fd2d7983 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports [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.objects.test_node.TestNodeObject.test_as_dict_secure_with_configdrive_as_dict [0.092641s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_template_and_user_steps [0.213971s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_with_traits [0.101100s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_create [0.095639s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_invalid_properties [0.046851s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_traits [0.054706s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first [0.093888s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first2 [0.107792s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestCommonFunctions.test_get_free_port_like_object_ports_pxe_enabled_first [0.077311s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_bad_id_and_uuid [0.057981s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_129_portgroups_portgroup_ident_delete_member [0.430329s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e80cee67-8c5c-40c2-ab52-87f633e3f909 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_port [0.099029s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_id [0.074502s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_user_and_driver_steps [0.348231s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_not_found [0.091940s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_uuid [0.079508s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup [0.227518s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name [0.064760s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name_node_not_found [0.046646s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_override_driver_steps [0.297810s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_port_addresses [0.061228s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_130_portgroups_portgroup_ident_delete_observer [0.451426s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e3dc377c-4dc5-41b3-9d11-4fed74328f48 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_uuid [0.058700s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_interface [0.077990s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_client [0.322191s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_get_interface_overriden [0.065342s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_override_template_steps [0.275114s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_list [0.044004s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields [0.069602s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields_empty_trait_present [0.084169s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_client [0.235829s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeDeployStepsTestCase.test__get_all_deployment_steps_skip_missing [0.273414s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestCommonFunctions.test_plug_port_to_tenant_network_no_tenant_vif [0.145164s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestCommonFunctions.test_plug_port_to_tenant_network_smartnic_port [0.117065s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeDeployStepsTestCase.test__get_all_deployment_steps_template_and_driver_steps [0.253330s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_port [0.104844s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_portgroup [0.157260s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_user_and_driver_steps [0.268774s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_131_nodes_portgroups_get_admin [1.075275s] ... 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-18b1dae1-ff24-4d68-99d2-29fd1a5b66cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_port [0.178306s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields_traits [0.846282s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_132_nodes_portgroups_get_member [0.142203s] ... 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-75e254e5-6c68-4729-9e6b-112f416b6fe0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_portgroup [0.154553s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_payload_schemas [0.071209s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_user_and_template_steps [0.305475s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_refresh [0.094055s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_in_internal_info [0.199602s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_133_nodes_portgroups_get_observer [0.226722s] ... 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-1e27cc88-e921-4c4a-b3a2-53e7aedc9ade X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_release [0.094775s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_release_node_not_found [0.062171s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deploy_steps_unsorted [0.263730s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_not_attached [0.144805s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve [0.073973s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve_node_not_found [0.064796s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_internal_info [0.101323s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save [0.064979s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_134_nodes_portgroups_detail_get_admin [0.305941s] ... 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-ed6515f5-4217-4e26-babc-d2afe76324c5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_not_attached [0.074463s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps [0.263990s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_after_refresh [0.122758s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_port [0.106962s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_truncated [0.117853s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_steps_only_enabled [0.180190s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_135_nodes_portgroups_detail_get_member [0.272843s] ... 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-c0466d07-02d9-489b-9f78-8cdd9f0f8adc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_portgroup [0.165646s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_updated_at_field [0.102785s] ... ok {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group [0.090515s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates [0.201595s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestVifPortIDMixin.test_get_current_vif_internal_info_cleaning [0.182137s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_fail [0.114241s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_136_nodes_portgroups_detail_get_observer [0.264622s] ... 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-ef7074ea-a478-4b5c-b187-515a204fa3c5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deployment_templates_no_traits [0.165347s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_uppercase [0.117277s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_provisioning [0.243685s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_traits [0.107710s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_steps_from_deployment_templates [0.140662s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_137_ports_get_admin [0.269479s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-205afea5-a971-4b2c-9237-466624522867 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_touch_provisioning [0.103517s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_rescuing [0.225736s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeDeployStepsTestCase.test__validate_user_deploy_steps [0.189039s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_node.TestNodeObject.test_update_with_invalid_properties [0.103152s] ... ok {3} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version [0.083384s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_138_ports_get_member [0.218500s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ab4ac546-39cd-4a87-b0f5-f9235be7afb0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_tenant_vif [0.177175s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_one [0.066480s] ... ok {3} ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_two [0.060306s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_core [0.213402s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object [0.074683s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_none [0.179927s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_map_version_bad [0.060168s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_disable_non_core [0.167554s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_old [0.065163s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_139_ports_get_observer [0.324786s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8a37a821-4257-4361-a652-a582a2441ecd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_objects.TestObject.test_as_dict [0.069196s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_extra_and_internal_priority [0.166392s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object [0.054117s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object_list [0.066954s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_duplicates [0.243985s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_objects.TestObject.test_assign_value_without_DictCompat [0.070190s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_internal [0.237688s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_objects.TestObject.test_base_attributes [0.071978s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObject.test_changed_1 [0.061545s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_140_ports_post_admin [0.379523s] ... 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-f4f7e0bc-0303-4d7f-b5e0-1b723840c2b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_objects.TestObject.test_changed_2 [0.066934s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_get_steps_exception [0.249595s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_objects.TestObject.test_changed_3 [0.085692s] ... ok {2} ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_port_and_portgroup [0.237534s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_objects.TestObject.test_changed_4 [0.059304s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_invalid_arg [0.183427s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_objects.TestObject.test_changes_in_primitive [0.076401s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_141_ports_post_member [0.277668s] ... 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-49e92196-8d3e-4fd1-8e4d-ac7fb5571f3f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_objects.TestObject.test_contains [0.083915s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_missing_required_arg [0.151160s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__check_node_firmware_update_done [0.250977s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_new [0.082598s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old [0.073352s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_no_steps [0.176823s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old_keep [0.071718s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__check_node_firmware_update_fail [0.236376s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_142_ports_post_observer [0.382684s] ... 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-1f192db6-e3d6-4cf9-9fe2-869a7ed7947d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_same [0.090663s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_not_supported [0.165553s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_objects.TestObject.test_dehydration [0.093193s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db [0.107965s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_143_ports_detail_get_admin [0.229531s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-53ae525a-f6a5-4f66-9aec-663f5d8a137b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_override_core [0.173684s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__check_node_firmware_update_fail_servicing [0.313229s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_downgrade [0.095459s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_pinned [0.109589s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_skip_missing [0.174366s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_144_ports_detail_get_member [0.237006s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1b2352ce-c9bd-42b4-91da-00c4d808ef2d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_objects.TestObject.test_get [0.092273s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__check_update_in_progress [0.270224s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_objects.TestObject.test_get_changes [0.086773s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test_set_node_deployment_steps [0.250760s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned [0.110683s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__execute_firmware_update_no_targets [0.200492s] ... ok {1} ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test_set_node_deployment_steps_skip_missing [0.109873s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned_2versions [0.111587s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_145_ports_detail_get_observer [0.360384s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6f54ea40-0e83-4b5d-9d87-ffa13ce7f8a7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_no_pin [0.057402s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__execute_firmware_update_targets [0.158064s] ... ok {1} ironic.tests.unit.conductor.test_steps.ReservedStepsHandlerTestCase.test_reserved_step_power_off [0.161226s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned [0.082777s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__stage_firmware_file_error [0.114264s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_bad [0.086380s] ... ok {1} ironic.tests.unit.conductor.test_steps.ReservedStepsHandlerTestCase.test_reserved_step_power_on [0.161849s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__stage_firmware_file_https [0.095843s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_no_myobj [0.078844s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_146_ports_port_id_get_admin [0.346376s] ... 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-e519b778-5774-4d4a-8f19-c855406afe1f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_objects.TestObject.test_get_updates [0.062120s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test__stage_firmware_file_swift [0.116296s] ... ok {1} ironic.tests.unit.conductor.test_steps.ReservedStepsHandlerTestCase.test_reserved_step_power_reboot [0.166076s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_objects.TestObject.test_hydration [0.095998s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns [0.076769s] ... ok {1} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps [0.095794s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_147_ports_port_id_get_member [0.268757s] ... 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-c6b311cd-fae6-472b-abeb-5b4fe3ae3560 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_objects.TestObject.test_hydration_type_error [0.103888s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_check_conn_error [0.241632s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps_no_steps [0.154575s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_objects.TestObject.test_load [0.087325s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_148_ports_port_id_get_observer [0.202240s] ... 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-87dc3433-b61f-4869-b609-bccb98acccbb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_objects.TestObject.test_load_in_base [0.105874s] ... ok {1} ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsTestCase.test__get_validate_user_deploy_steps_on_node [0.166649s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_check_update_still_waiting [0.236973s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive [0.102105s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock [0.156335s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set [0.089801s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_149_ports_port_id_patch_admin [0.207518s] ... 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-f47b27c1-a99a-439d-aa8a-d500c7c890ff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_objects.TestObject.test_obj_constructor [0.084646s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_build_driver_exception [0.111812s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObject.test_obj_fields [0.095684s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_no_retries [0.108066s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObject.test_object_inheritance [0.093322s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_150_ports_port_id_patch_member [0.317823s] ... 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-a3508463-bf44-4631-869d-bbd5c6a87bc0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_objects.TestObject.test_object_property [0.087972s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_patient [0.211060s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObject.test_object_property_type_error [0.073869s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObject.test_orphaned_object [0.079272s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_then_lock [0.172206s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObject.test_refresh_object [0.069289s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObject.test_static_result [0.095495s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_portgroups_exception [0.168584s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObject.test_supports_version [0.084483s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_151_ports_port_id_patch_observer [0.461774s] ... 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-2ff0a0a4-1edb-43d2-853c-f2c51798a3c9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_check_update_task_monitor_not_found [1.003692s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_objects.TestObject.test_unknown_objtype [0.096513s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_ports_exception [0.129467s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObject.test_updates [0.078733s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_volconn_exception [0.122686s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObject.test_with_alternate_context [0.083289s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_152_ports_port_id_delete_admin [0.313518s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2d7d5cab-1992-420e-95e4-8b54a5114902 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_voltgt_exception [0.106856s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_check_update_wait_elapsed [0.273863s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_api [0.144282s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_reserve_exception [0.117981s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_conductor [0.111176s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_continue_update_waitting [0.197191s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_upgade_exception_no_retries [0.138261s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_api [0.127811s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_153_ports_port_id_delete_member [0.318169s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2b8dc117-f503-4da2-b01c-795f322b1360 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_nested_acquire [0.134753s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_conductor [0.105441s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_continue_updates_last [0.203897s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport [0.067088s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_continue_updates_last_service [0.206976s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_154_ports_port_id_delete_observer [0.332545s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-cabe51c8-ef99-402d-9880-00b74bbf4822 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_continue_updates_more_updates [0.200172s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_155_nodes_ports_get_admin [0.311450s] ... 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-23a5032b-843e-4e77-83ec-5a157fb887c4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_create_all_components [0.479942s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_156_nodes_ports_get_member [0.327800s] ... 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-e822ab14-3a43-42dd-8adc-fae30b24d63e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport_zero [0.896537s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_init_prepares_fsm [1.001856s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_backports [0.081390s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_passes_revision [0.094891s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_no_driver [0.162333s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_empty_settings [0.295538s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_pin_ignored [0.083461s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_157_nodes_ports_get_observer [0.364443s] ... 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-cd3d1f17-5468-486e-83cb-3ede59315936 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock [0.142834s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_same_revision_does_not_backport [0.077931s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization [0.066620s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_build_driver_exception [0.157495s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization_iterables [0.086415s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_empty_settings_service [0.292364s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_invalid_pin [0.072353s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_portgroups_exception [0.160576s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_api [0.078428s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_158_nodes_ports_detail_get_admin [0.362705s] ... 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-9a49c13b-9132-4828-b2e2-0de7bfba1617 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_get_properties [0.169961s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_conductor [0.063401s] ... ok {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_api [0.085180s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_ports_exception [0.145915s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_invalid_component_in_settings [0.186670s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_conductor [0.101872s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_volconn_exception [0.179218s] ... ok {3} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_create [0.090089s] ... ok {3} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_bad_id_and_uuid_and_address_and_name [0.102819s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_invalid_component_in_settings_service [0.206191s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_159_nodes_ports_detail_get_member [0.429761s] ... 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-f9de3570-c75b-432b-9312-630b2d32fbbf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_voltgt_exception [0.188522s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_all_components [0.104612s] ... ok {3} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_address [0.120804s] ... ok {3} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_id [0.100067s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_node_get_exception [0.148627s] ... ok {3} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_name [0.106118s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_160_nodes_ports_detail_get_observer [0.307471s] ... 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-7196b611-2c27-481f-9d28-7680ec1feb47 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_bios_component [0.266483s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after [0.202687s] ... ok {3} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_uuid [0.118377s] ... ok {3} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list [0.116193s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_exception_while_yielded [0.175072s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_161_portgroups_ports_get_admin [0.340785s] ... 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-cdfadc77-17b2-43d3-8b0c-bad5f9657fb5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list_by_node_id [0.149496s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_bmc_component [0.350240s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_link_fails [0.142518s] ... ok {3} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_payload_schemas [0.106157s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook [0.151984s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_required_field_in_settings [0.207453s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_refresh [0.127095s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_162_portgroups_ports_get_member [0.331172s] ... 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-e8efa6b9-ed2a-435c-925f-ec92402c67ab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save [0.120319s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook_exception [0.151263s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_required_field_in_settings_service [0.245433s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_spawn_fails [0.117207s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_163_portgroups_ports_get_observer [0.227894s] ... 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-12b8e06c-0b06-452b-a644-7d2f7802eb9f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save_after_refresh [0.197390s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock [0.112125s] ... ok {3} ironic.tests.unit.objects.test_trait.TestTraitObject.test_as_dict [0.090000s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_simple_update_action [0.211864s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {3} ironic.tests.unit.objects.test_trait.TestTraitObject.test_create [0.123369s] ... ok {1} ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock_refreshes_fsm [0.169334s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_164_portgroups_ports_detail_get_admin [0.265626s] ... 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-2a7a7746-7319-452c-a0a7-b3db3179b137 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {3} ironic.tests.unit.objects.test_trait.TestTraitObject.test_create_list [0.089104s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_missing_updateservice [0.190924s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DeployingErrorHandlerTestCase.test_cleanup_after_timeout [0.111564s] ... ok {3} ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy [0.104519s] ... ok {1} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout_shared_lock [0.091347s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_redfish_fw_updates [0.154545s] ... ok {3} ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy_list [0.090003s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_165_portgroups_ports_detail_get_member [0.300788s] ... 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-53ffc3e5-0c44-4850-8991-f120a6c0e5e9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler [0.112432s] ... ok {3} ironic.tests.unit.objects.test_trait.TestTraitObject.test_exists [0.078106s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_redfish_fw_updates_empty [0.147552s] ... ok {1} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_ironic_exception [0.098074s] ... ok {3} ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_by_id [0.084091s] ... ok {3} ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_trait_names [0.088822s] ... ok {1} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_random_exception [0.104954s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_firmware.RedfishFirmwareTestCase.test_validate [0.130179s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_166_portgroups_ports_detail_get_observer [0.340572s] ... 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-a448481e-51c2-416a-bcb3-e219e222a1ab X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_no_cleanup [0.108131s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_done [0.208063s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DeployingErrorHandlerTestCase.test_deploying_error_handler_not_deploy [0.116729s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_167_volume_get_admin [0.198397s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6a2b39c8-f9e4-4a8e-a81c-61ef072690fb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_empty [0.104300s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_fail [0.201700s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_168_volume_get_member [0.177600s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-46d00885-56e6-42a4-9358-ff1d3aa14fb9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_populated [0.121079s] ... ok {1} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_user_data_as_dict [0.130886s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_169_volume_get_observer [0.240268s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-428833c7-9ac3-4c0a-9542-d4ba1a77d791 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_user_data_as_string [0.137992s] ... ok {1} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_no_configdrive [0.117492s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_170_volume_connectors_get_admin [0.183863s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f63d5ba2-2b7e-4031-903f-d9d5f768a975 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_171_volume_connectors_get_member [0.162897s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a9b5d9bd-ed97-498f-aee9-8919477b6a21 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_string [0.165966s] ... ok {1} ironic.tests.unit.conductor.test_utils.GetTokenProjectFromRequestTestCase.test_no_token_info [0.139795s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_172_volume_connectors_get_observer [0.183499s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fffc9895-35df-4584-ad64-b5015378514b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.GetTokenProjectFromRequestTestCase.test_returns_project_id_if_present [0.126064s] ... ok {1} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_exclude_current_conductor [0.172152s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_173_volume_connectors_post_admin [0.265428s] ... 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-ad48063c-0409-4e0a-accb-61e86b7f23fa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_in_progress [1.162971s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_174_volume_connectors_post_member [0.180218s] ... 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-d8ef3e69-0874-40f9-905a-7ffc9a162bf4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_clean [0.226556s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_redfish_conn_error [0.232540s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_175_volume_connectors_post_observer [0.192028s] ... 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-a0c31b40-2d39-4ae2-a6b4-a06d18c46202 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_deploy [0.190498s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_still_waiting [0.216641s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.MiscTestCase.test_notify_conductor_resume_operation [0.148717s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_176_volume_volume_connector_id_get_admin [0.213031s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/983163ef-d8a4-4437-8f78-0d074020df03 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d6a7016e-b9e3-4bb0-aadb-2c643e2aa859 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 983163ef-d8a4-4437-8f78-0d074020df03 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_power_on_node_if_needed_false_no_need [0.124793s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_task_monitor_not_found [0.238028s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.MiscTestCase.test_power_on_node_if_needed_false_power_on [0.143482s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.MiscTestCase.test_power_on_node_if_needed_true [0.139206s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_wait_elapsed [0.259399s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.MiscTestCase.test_power_on_node_if_needed_with_smart_nic_port [0.149117s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.MiscTestCase.test_remove_node_rescue_password_save_false [0.111762s] ... ok {1} ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_true [0.072453s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_last_update [0.297786s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.MiscTestCase.test_restore_power_state_if_needed_false [0.074808s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.MiscTestCase.test_restore_power_state_if_needed_true [0.079882s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_177_volume_volume_connector_id_get_member [0.944999s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/4550dc7a-32c0-4e46-8c99-365b1dbe3a57 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f8518b33-1978-40ad-a6fe-53a0ef0d0d75 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 4550dc7a-32c0-4e46-8c99-365b1dbe3a57 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history [0.101377s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_more_updates [0.263068s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_178_volume_volume_connector_id_get_observer [0.101577s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/23d9b557-c26a-4234-b0c7-e2b21101deb8 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5896d610-7fac-420b-a9d8-1cb03cf69c6a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 23d9b557-c26a-4234-b0c7-e2b21101deb8 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_disaled [0.174035s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_179_volume_volume_connector_id_patch_admin [0.179382s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/17ad2b90-f441-4b24-9626-0f25d5be97bf WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-94271306-a363-4738-adb5-b97666b737b5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 17ad2b90-f441-4b24-9626-0f25d5be97bf could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_wait [0.237641s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_noop [0.089381s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_with_error_severity [0.034961s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_with_user [0.028438s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__calculate_target_state [0.070569s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_180_volume_volume_connector_id_patch_member [0.242037s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/29443e1c-5285-4344-958f-c623b33daf3e WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0c8589f8-3358-46da-846a-db89e011e7a9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 29443e1c-5285-4344-958f-c623b33daf3e could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_data_drive_simple_storage [0.199283s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_data_drive_storage [0.200267s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_fan [0.229712s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_181_volume_volume_connector_id_patch_observer [0.478865s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/4bfef64c-46e0-4e33-84e6-1d5babd5ff06 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-21a9b56d-ea75-4c0b-aa28-e73b29b3e7cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 4bfef64c-46e0-4e33-84e6-1d5babd5ff06 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_power [0.167521s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_temperatures [0.131559s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_db_not_in_sync [0.784828s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_182_volume_volume_connector_id_delete_admin [0.279975s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/911dbedc-afe4-4b05-98f6-34dcedd9cef5 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7dda7adf-05a5-4d3e-b77b-aa8f2cda8099 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 911dbedc-afe4-4b05-98f6-34dcedd9cef5 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_failed [0.146425s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_different_state [0.159280s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_failed_no_firmware_upd [0.126728s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_status [0.105026s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__query_firmware_update_status_no_firmware_upd [0.097617s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_183_volume_volume_connector_id_delete_member [0.444106s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/d2248860-5c9e-4e3d-9534-d6d370e093d8 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-beafefeb-6a14-4dda-8d3f-93192a77d4a0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector d2248860-5c9e-4e3d-9534-d6d370e093d8 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_error [0.082914s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_failed_getting_state_notify [0.428611s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_https [0.100873s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__stage_firmware_file_swift [0.094354s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_attach_virtual_media [0.105849s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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__can_skip_state_change_same_state [0.273416s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_184_volume_volume_connector_id_delete_observer [0.401851s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/18f5e571-480c-4444-88e6-90a9878e8d6f GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f6dc35b8-0375-4fe4-92fb-796482bc0bbd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 18f5e571-480c-4444-88e6-90a9878e8d6f could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_clear_secure_boot [0.091797s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_clear_secure_boot_not_implemented [0.104184s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_already_being_processed [0.217071s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_185_volume_targets_get_admin [0.273120s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5e25cd18-bd29-4905-817b-fb43cf54e2c9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_detach_virtual_media [0.171384s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_disable_power_off [0.132239s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_detach_virtual_media_all [0.191340s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_failed_getting_state [0.195961s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_186_volume_targets_get_member [0.313382s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a30f83b2-3469-48c0-8062-026277d8c103 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_detect_vendor [0.154333s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_device [0.185282s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state_notify [0.324648s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_187_volume_targets_get_observer [0.365122s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-32497899-88b8-44e2-b1ae-e7e58ab45935 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_mode [0.174739s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state [0.224206s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_indicator_state [0.232858s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_188_volume_targets_post_admin [0.388516s] ... 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-4964d21e-e373-4292-9a52-92fa01d69c4f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state_db_not_in_sync [0.235639s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_indicator_state_disk [0.214312s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_missing_attr [0.119574s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state [0.327553s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_no_ports_found [0.113054s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_189_volume_targets_post_member [0.407195s] ... 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-666e17a0-e2e2-4f18-8b4a-9def0e2652d6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_success [0.163983s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_properties [0.118117s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_190_volume_targets_post_observer [0.342057s] ... 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-e4fde233-4545-4ef0-80e7-12915909617f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_secure_boot_state [0.118637s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state_notify [0.551022s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_secure_boot_state_not_implemented [0.153025s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_191_volume_volume_target_id_get_admin [0.294322s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/60b39caf-2be1-4f90-b0ed-b8200e6756c6 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d1dfd2cd-06af-4e4b-8f75-54ca5a82deec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 60b39caf-2be1-4f90-b0ed-b8200e6756c6 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_keep_last_error [0.174695s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_sensors_data [0.166252s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off [0.162513s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_devices [0.146225s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_192_volume_volume_target_id_get_member [0.330112s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/e79ed929-440f-45f8-8db3-7dd3e12156bf WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-baf89f9d-3347-4240-9590-5c898a2cf200 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target e79ed929-440f-45f8-8db3-7dd3e12156bf could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_modes [0.134311s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_already [0.204468s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_indicators [0.130603s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_virtual_media [0.147859s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_193_volume_volume_target_id_get_observer [0.338358s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/ab261d68-0d14-4b0f-afd9-b2e4f5aab8ae WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b54738ad-de8c-4198-af21-d08a58765c10 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target ab261d68-0d14-4b0f-afd9-b2e4f5aab8ae could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi [0.128244s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_194_volume_volume_target_id_patch_admin [0.373060s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/7ba20e6c-f36f-4b27-b224-1d51e4e11c00 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ea4004e5-4e60-49ee-8bb4-fedad83be2fc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 7ba20e6c-f36f-4b27-b224-1d51e4e11c00 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi_fail [0.246829s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_reset_secure_boot_to_default [0.149591s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_195_volume_volume_target_id_patch_member [0.318894s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/2d42ef0a-0fe4-43a2-bea5-f25f554dd473 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7d9523de-58f3-4a6a-a300-e47c5dc3476a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 2d42ef0a-0fe4-43a2-bea5-f25f554dd473 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_reset_secure_boot_to_default_not_implemented [0.172378s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device [0.114927s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_compat [0.107356s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_196_volume_volume_target_id_patch_observer [0.278976s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/0a75a5b2-a74b-45b1-8908-01eb01730e3b WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-81e8bfb2-80f5-4696-a171-87b721388b6a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 0a75a5b2-a74b-45b1-8908-01eb01730e3b could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_failure [0.103694s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_restore_boot_device_noop [0.123324s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_197_volume_volume_target_id_delete_admin [0.322491s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/a486a5b4-8bc5-4503-ba27-c6404010ae3f GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ed30c08a-1077-4171-9886-1b85ba6a0bcc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target a486a5b4-8bc5-4503-ba27-c6404010ae3f could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device [0.202670s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail [0.170846s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_198_volume_volume_target_id_delete_member [0.247259s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/dae6adc3-909b-4adc-841c-07db535ce6ea GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-026ce2e1-c567-496c-967c-bf445d0eb66b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target dae6adc3-909b-4adc-841c-07db535ce6ea could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail_no_change [0.147124s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_http_boot [0.178596s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_199_volume_volume_target_id_delete_observer [0.426638s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/7692564f-c02d-4031-8f67-0a88fa71e20c GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-85967cdf-1324-4405-b939-00b17b1eb811 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 7692564f-c02d-4031-8f67-0a88fa71e20c could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_exception_if_child_locked [2.304159s] ... ok 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.TestRBACScoped.test_rbac_legacy_200_nodes_volume_get_admin [0.363710s] ... 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-555796ed-b14e-4a81-898f-7b11fb50af24 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_parent [0.396586s] ... ok 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.TestRBACScoped.test_rbac_legacy_201_nodes_volume_get_member [0.200715s] ... 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-7f46d6aa-75ee-428f-aea7-df7568d87638 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_parent_child_remains [0.186687s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_202_nodes_volume_get_observer [0.242419s] ... 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-27bca2b1-3a0b-4a06-b9a4-1efb16ec92d2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistence_fallback [0.921036s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_off_pregenerated_token [0.214038s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency [0.131455s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_off_storage_detach [0.168296s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_203_nodes_volume_connectors_get_admin [0.209331s] ... 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-1fde8c34-da3b-45da-af87-14c7c02724fa X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency_no_change [0.178979s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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 [0.178488s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_204_nodes_volume_connectors_get_member [0.216803s] ... 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-c56aa8d2-c1d9-466f-8b01-c49809d5f847 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_205_nodes_volume_connectors_get_observer [0.202045s] ... 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-a2c02945-a868-49d9-88d3-246ca4091fad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency_vendor [0.341829s] ... ok 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_management.RedfishManagementTestCase.test_set_boot_mode [0.128530s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_206_nodes_volume_targets_get_admin [0.190764s] ... 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-37a1c428-c592-49f6-b1d2-214716647f74 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_207_nodes_volume_targets_get_member [0.237944s] ... 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-c0469a66-ed49-4bc4-8d68-0ebbe272163a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_fail [0.301066s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_208_nodes_volume_targets_get_observer [0.181287s] ... 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-a64029f4-9b31-4c30-b494-40c0dd835a42 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_unsupported [0.235530s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_209_drivers_get_admin [0.193588s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-491c4c77-5f2a-435e-a9ca-cfd905388ec5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_indicator_state [0.128567s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_indicator_state_disk [0.095583s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state [0.100409s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_210_drivers_get_member [0.266937s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-95cc96b0-0271-4efa-a342-ffde14b6ec4a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_fails [0.110531s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_incorrect [0.063133s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_211_drivers_get_observer [0.230513s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-26d1ca95-3dce-4b69-acf1-6205551bc336 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_no_change [0.062098s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_unknown [0.048055s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_not_implemented [0.047273s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware [0.076699s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_invalid_args [0.050269s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_212_drivers_driver_name_get_admin [0.265057s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-0f29d055-220d-4e50-8177-fc775a921a0f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_update_firmware_stage [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.redfish.test_management.RedfishManagementTestCase.test_update_firmware_stage_both [0.066999s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_validate [0.040121s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_boot_mode [0.073397s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_213_drivers_driver_name_get_member [0.316318s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-76dac976-0eb2-4d9e-ac24-8458e64f3f3c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_boot_mode_immediate [0.149217s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.229089s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_secure_boot [0.243567s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_214_drivers_driver_name_get_observer [0.328637s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-5aa4d43f-a9cb-4eef-8828-c9ba44b38de8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_notify [0.450412s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_secure_boot_immediate [0.243848s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_215_drivers_properties_get_admin [0.340624s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-b323ec1b-19b5-4061-a042-0e9184a4d300 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_secure_boot_no_wait [0.244288s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_parent_off [0.304361s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_216_drivers_properties_get_member [0.296427s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-27427b08-c22f-477d-a943-7c2166707c69 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_storage_attach [0.251126s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_217_drivers_properties_get_observer [0.285406s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-f0a9a447-a839-4eda-9882-e4e9099056dd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_with_parent [0.336319s] ... ok 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.TestRBACScoped.test_rbac_legacy_218_drivers_raid_logical_disk_properties_get_admin [0.264600s] ... 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-192a20d9-6672-4dc2-893b-1375f7945c5f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_219_drivers_raid_logical_disk_properties_get_member [0.159206s] ... 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-75bc4e30-da68-4a6e-b5b5-8ac4f0b44cb9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_reboot [0.249920s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_wait_for_secure_boot_timeout [1.118369s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_with_disable_power_off [0.279462s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_reboot_no_timeout [0.178478s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_utils.RedfishUtilsAuthTestCase.test_auth_auto [0.236046s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_storage_attach [0.118709s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_set_power_failure [0.060002s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_utils.RedfishUtilsAuthTestCase.test_auth_basic [0.229997s] ... ok {1} ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure_notify [0.159571s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_utils.RedfishUtilsAuthTestCase.test_auth_session [0.247667s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_220_drivers_raid_logical_disk_properties_get_observer [0.955692s] ... 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-76fe20c2-b856-4563-87fd-d61ac9b56724 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_disabled_sessions_cache [0.222770s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_221_drivers_vendor_passthru_methods_get_admin [0.274912s] ... 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-96307315-ea13-4019-9571-91bf98fe092d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_utils.ServiceUtilsTestCase.test_wipe_service_internal_info [0.519429s] ... ok {1} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios [0.113382s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_222_drivers_vendor_passthru_methods_get_member [0.309545s] ... 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-565a8ba0-dd84-472c-a8ab-ed39832df213 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios_exception [0.162885s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_223_drivers_vendor_passthru_methods_get_observer [0.224992s] ... 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-8b2174b9-ed9f-4422-960a-9e5d09adf1a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios_unsupported [0.172938s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_224_drivers_vendor_passthru_get_admin [0.194162s] ... 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-b6792d0f-58d7-4d8a-a54d-aa8d50e7c02d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_225_drivers_vendor_passthru_get_member [0.218571s] ... 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-e8729c1e-b06d-4189-937e-866e24b89e5e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify [0.416617s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_basic_session_caching [1.055642s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_226_drivers_vendor_passthru_get_observer [0.169970s] ... 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-dece05c5-b2bf-4aad-9f33-3a1dab87762b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_address [0.178932s] ... ok {1} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify_get_state_fails [0.260950s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.TestRBACScoped.test_rbac_legacy_227_drivers_vendor_passthru_post_admin [0.261155s] ... 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-9419d6ea-457a-4099-8783-85a18359a47b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify_validation_fails [0.211902s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.console.container.test_console_container.TestConsoleContainerFactory.test_factory [0.048582s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_password [0.320736s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value [0.056599s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check [0.058135s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_default_value [0.067024s] ... ok {1} ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check [0.051186s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_228_drivers_vendor_passthru_post_member [0.373980s] ... 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-e4782446-eadf-42b1-b440-519df0491037 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list [0.077321s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_username [0.321819s] ... ok {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_duplicate [0.121171s] ... ok {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_node_not_exist [0.092681s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_session_reuse [0.226039s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_229_drivers_vendor_passthru_post_observer [0.259891s] ... 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-0c611d89-9e49-4c3c-9782-686b95d85920 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list [0.137060s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_230_drivers_vendor_passthru_put_admin [0.168650s] ... 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-a884d66e-fc66-40b5-b5e3-b02c97ca8277 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_231_drivers_vendor_passthru_put_member [0.064438s] ... 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-059f86e9-99c8-409d-b963-33fbae8d6014 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_node_not_exist [0.134422s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_expire_old_sessions [0.285850s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_232_drivers_vendor_passthru_put_observer [0.080625s] ... 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-c9e40f8d-da9a-4428-91b3-c53f6cbd0c7d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_setting_not_exist [0.169072s] ... ok {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting [0.127485s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_233_drivers_vendor_passthru_delete_admin ... SKIPPED: not updated for scope testing {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system [0.269287s] ... ok {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list [0.088997s] ... ok {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list_node_not_exist [0.096343s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_234_drivers_vendor_passthru_delete_observer ... SKIPPED: not updated for scope testing {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_node_not_exist [0.084531s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_multiple_systems [0.268587s] ... ok {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_setting_not_exist [0.120988s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_access_error_retry [0.148123s] ... ok {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list [0.106462s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_attribute_error [0.135026s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_235_nodes_bios_get_admin [0.371502s] ... 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-9398c398-9467-4748-be28-c4c8bd93548e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_node_not_exist [0.130902s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_connection_error_retry [0.094508s] ... ok {1} ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_setting_not_exist [0.183652s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_236_nodes_bios_get_member [0.297297s] ... 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-da8c3691-0225-4cb8-a9e2-02948986a548 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag [0.124599s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_duplicate [0.159744s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_node_not_exist [0.089043s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_237_nodes_bios_get_observer [0.407882s] ... 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-1d85c7c8-afd7-47b6-b07f-0a4e4d242d53 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag [0.136127s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_get_system_resource_not_found [0.763864s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_node_not_found [0.143916s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_wait_until_get_system_ready [0.197041s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_not_found [0.184585s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_by_node_id [0.126400s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_238_nodes_bios_bios_setting_get_admin [0.484964s] ... 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-70cf1ec9-d593-45b4-83e6-a2d5a5e79bb9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_empty [0.076350s] ... ok {2} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_wait_until_get_system_ready_with_connection_error [0.222740s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_node_not_exist [0.110790s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.PrepareInstanceToBootTest.test_prepare_instance_to_boot [0.163975s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_node_tags.DbNodeTagTestCase.test_node_tag_exists [0.088382s] ... ok {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_node_not_exist [0.086021s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_239_nodes_bios_bios_setting_get_member [0.384410s] ... 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-62e53a2c-93e2-44c3-a820-008db962ddb1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_not_exists [0.106455s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.PrepareInstanceToBootTest.test_prepare_instance_to_boot_configure_fails [0.235735s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_node_tags.DbNodeTagTestCase.test_set_node_tags [0.153105s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_240_nodes_bios_bios_setting_get_observer [0.238354s] ... 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-f9202f55-641a-49cb-9d87-0f8bd1cb8237 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent.PrepareInstanceToBootTest.test_prepare_instance_to_boot_localboot_prep_partition [0.213421s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_node_tags.DbNodeTagTestCase.test_set_node_tags_duplicate [0.137488s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_241_conductors_get_admin [0.209057s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ac2c65b3-5fbd-4bf5-b1ac-038e51d30b2a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_node_not_exist [0.123021s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.SwitchToTenantNetworkTest.test_switch_to_tenant_network [0.160751s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_node_tags.DbNodeTagTestCase.test_unset_empty_node_tags [0.140095s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_242_conductors_get_member [0.269661s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-293a148d-9592-4e7b-a8c9-6011b88cb954 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent.SwitchToTenantNetworkTest.test_switch_to_tenant_network_fails [0.287002s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_node_tags.DbNodeTagTestCase.test_unset_node_tags [0.168627s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent [0.133366s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_node_tags.DbNodeTagTestCase.test_unset_node_tags_node_not_exist [0.138786s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_243_conductors_get_observer [0.236151s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3a3dbf23-6d72-4d26-8a78-182175a3436b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_disable_power_off [0.133456s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_nodes.DbNodeTestCase.test_allocations_get_destroyed_after_destroying_a_node_by_uuid [0.227214s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_244_conductors_hostname_get_admin [0.228084s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-82f5d55b-5951-4ca9-b393-e6bbb844fca2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_get_power_state_fails [0.140251s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_nodes.DbNodeTestCase.test_check_node_list [0.168771s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_no_power_on_support [0.136176s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_nodes.DbNodeTestCase.test_check_node_list_impossible [0.141505s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_245_conductors_hostname_get_member [0.318706s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-113314bb-eb33-4495-bdec-9c2fd91ed456 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_power_action_oob_power_off [0.235342s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_nodes.DbNodeTestCase.test_check_node_list_non_existing [0.166757s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_246_conductors_hostname_get_observer [0.255512s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8cc3ab3a-cb0b-457e-8218-07ded712e79b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node [0.132608s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_already_exists [0.144710s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_power_action_oob_power_off_failed [0.290497s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_nodes.DbNodeTestCase.test_create_node_instance_already_associated [0.152896s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_247_allocations_post_admin [0.348313s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d78cb376-6b58-4014-a71e-b5b495db2f70 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_power_off_fails [0.195262s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_nodes.DbNodeTestCase.test_create_node_name_duplicate [0.143512s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_soft_poweroff_doesnt_complete [0.109627s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.107086s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_nodes.DbNodeTestCase.test_create_node_with_tags [0.139591s] ... ok {0} 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.drivers.modules.test_agent.TearDownAgentTest.test_tear_down_agent_soft_poweroff_race [0.062574s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_nodes.DbNodeTestCase.test_create_node_with_traits [0.107517s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node [0.099354s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up [0.142535s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_nodes.DbNodeTestCase.test_destroy_node_by_uuid [0.071969s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_that_does_not_exist [0.063715s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up_disable_power_off [0.183839s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_249_allocations_post_observer [0.417125s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e929a42a-524a-4a96-8d08-0718e46ebf9e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_firmware_component_list_after_destroying_a_node_by_uuid [0.155503s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy [0.132881s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_250_allocations_get_admin [0.123144s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-84b8d424-1af0-47b2-b7e0-9e94a720c56b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_251_allocations_get_member [0.099609s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-72aded98-a565-4bff-8074-3ed450679843 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_id [0.230388s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_fast_track [0.221880s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_252_allocations_get_observer [0.142130s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-74519721-98c6-456d-b627-3c75702a3e42 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_storage_should_write_image_false [0.123649s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_nodes.DbNodeTestCase.test_get_node_by_instance [0.172863s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_invalid_uuid [0.098727s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_with_deployment_reboot [0.152238s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_253_allocations_allocation_id_get_admin [0.273352s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/ffa5fdbc-36d3-4bea-ac41-cc3d78c8c5a9 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c246a5ed-9798-4cb8-b49b-ef23e99add7d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation ffa5fdbc-36d3-4bea-ac41-cc3d78c8c5a9 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_wrong_uuid [0.076194s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps [0.137076s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_254_allocations_allocation_id_get_member [0.215465s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/8a63728b-0fa7-4ed8-96ad-e9b009d7c6b5 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-09d6a3e1-ebdc-4a64-9dc3-eb5663f7a5db X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 8a63728b-0fa7-4ed8-96ad-e9b009d7c6b5 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps_config_priority [0.207231s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_255_allocations_allocation_id_get_observer [0.194870s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/52bb5e40-286d-4940-9fca-f29b3722167b WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1308ca8e-0b23-4591-9887-9d62301a9d4c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 52bb5e40-286d-4940-9fca-f29b3722167b could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_properties [0.130016s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_256_allocations_allocation_id_patch_admin [0.172752s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/20734ab5-0680-4081-9ab7-b0f47c52dd6b WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c23e5c36-7a91-4cca-8843-e3c46fd79a99 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 20734ab5-0680-4081-9ab7-b0f47c52dd6b could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_service_steps [0.166096s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_257_allocations_allocation_id_patch_member [0.220820s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/2e08416b-9dda-4929-9781-9f67a739e2c6 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d9346a6d-5020-484d-bfba-73e8d2c72621 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 2e08416b-9dda-4929-9781-9f67a739e2c6 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare [0.354955s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_nodes.DbNodeTestCase.test_get_node_by_name [1.029549s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_258_allocations_allocation_id_patch_observer [0.252598s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/703396eb-881d-44e1-ac3e-93382a186b43 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-db58b7b9-c3c1-4623-adb1-da4e1ea332d7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 703396eb-881d-44e1-ac3e-93382a186b43 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses [0.150058s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_active_and_unrescue_states [0.266436s] ... ok 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.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_multiple_found [0.105058s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_259_allocations_allocation_id_delete_admin [0.233436s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/4f975ec3-b3d1-4ce9-8371-6fa0c58f211f GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5a3f7290-307f-432e-9c22-33b8a6f12c7f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 4f975ec3-b3d1-4ce9-8371-6fa0c58f211f could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_not_found [0.103196s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_adopting [0.182248s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_260_allocations_allocation_id_delete_member [0.227853s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/26144086-e228-456c-8c29-7fcb391c5074 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2eb58fd2-ed95-4b81-9f0f-e05613f711f3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 26144086-e228-456c-8c29-7fcb391c5074 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_uuid [0.190391s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_261_allocations_allocation_id_delete_observer [0.178480s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/05348c7e-e467-4975-a6ba-af1c86b85ef7 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ffc465d7-1006-4e2e-9dfb-67d476f6395f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 05348c7e-e467-4975-a6ba-af1c86b85ef7 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list [0.145298s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_boot_from_volume [0.331549s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_nodes.DbNodeTestCase.test_get_node_list_chassis_not_found [0.106680s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning [0.205438s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_nodes.DbNodeTestCase.test_get_node_list_description [0.136364s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_262_nodes_allocation_get_admin [0.267661s] ... 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-a9a4a616-1046-41ca-9daa-811d987bf676 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_filter_by_project [0.155991s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning_fast_track [0.192509s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_nodes.DbNodeTestCase.test_get_node_list_includes_traits [0.154491s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning_manage_agent_boot_false [0.156562s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_nodes.DbNodeTestCase.test_get_node_list_requested_fields_no_traits [0.135786s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_fast_track [0.240591s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_nodes.DbNodeTestCase.test_get_node_list_requested_fields_with_traits [0.194289s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot [0.198773s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_263_nodes_allocation_get_member [0.951040s] ... 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-1c10462b-fa20-4046-bd85-ad86b6c55e90 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_localboot [0.233600s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_nodes.DbNodeTestCase.test_get_node_list_with_filters [0.397499s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_264_nodes_allocation_get_observer [0.161645s] ... 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-c5755b75-436d-45ad-993b-955902e83b06 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_that_does_not_exist [0.125730s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_265_nodes_allocation_delete_admin [0.156484s] ... 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-93ab5b09-5c25-49ed-b9c9-c07b58d12b44 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_no_manage_agent_boot [0.279376s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_nodes.DbNodeTestCase.test_get_nodeinfo_list_defaults [0.156561s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_description [0.092590s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_266_nodes_allocation_delete_member [0.165424s] ... 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-acb00c8c-39b1-487c-b344-264b0e37b58d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_inspection [0.119980s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_partition_image [0.231595s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_267_nodes_allocation_delete_observer [0.166006s] ... 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-8168cc8e-8530-4925-83bc-432f86868802 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_provision [0.114326s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_268_deploy_templates_post_admin [0.183842s] ... 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-03c803b0-fa3d-474f-bbe5-6233c2f4badc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_cols [0.151262s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_partition_localboot_ppc64 [0.267002s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_269_deploy_templates_post_member [0.105785s] ... 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-14a4e0d9-93d4-42b1-a019-7adf8d51a873 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_filters [0.231649s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_270_deploy_templates_post_observer [0.197706s] ... 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-62a36892-8529-49d6-b9e6-502a7fd88465 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_storage_should_write_image_with_smartnic [0.304385s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_nodes.DbNodeTestCase.test_history_get_destroyed_after_destroying_a_node_by_uuid [0.211923s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_271_deploy_templates_get_admin [0.314013s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-73ce1b04-7878-4398-90a0-8789d0bef83d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_inventory_get_destroyed_after_destroying_a_node_by_uuid [0.193924s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_inventory_updated_for_node [0.183440s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_manage_agent_boot_false [0.536527s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_272_deploy_templates_get_member [0.311536s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-22a767fd-4377-4828-9284-779f84206b61 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_node_provision_state_count [0.218748s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_273_deploy_templates_get_observer [0.236879s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-34ecf1c9-ddcc-4237-bdcc-65d2e02b07ff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node [0.167265s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_rescue_states [0.398706s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node_by_uuid [0.107861s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_274_deploy_templates_deploy_template_id_get_admin [0.218469s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/d77b8d0e-6703-45d3-b220-0d560d179ff1 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d630bdcc-7b4d-4134-a1f9-ee9b229f9d2a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_existent_node [0.110914s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_service [0.155234s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_nodes.DbNodeTestCase.test_release_non_locked_node [0.068125s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_reservation [0.087086s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_storage_write_false [0.171382s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_275_deploy_templates_deploy_template_id_get_member [0.264761s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/0e05f4e3-2b63-43f5-a8bb-bfbaae8a11a4 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-687b8065-32e3-4137-bc0c-d300f84fc31b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_after_release [0.094227s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_nodes.DbNodeTestCase.test_reservation_in_exception_message [0.070741s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_with_neutron_net [0.188532s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_nodes.DbNodeTestCase.test_reservation_non_existent_node [0.079852s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_276_deploy_templates_deploy_template_id_get_observer [0.239878s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/67cb67e5-ccad-4993-ae57-036a51efb880 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-69ef19a7-7e88-40ab-827e-b936a057ffc3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_of_reserved_node_fails [0.125144s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_nodes.DbNodeTestCase.test_reserve_node [0.147861s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_with_smartnic_port [0.283025s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_277_deploy_templates_deploy_template_id_patch_admin [0.233584s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/b0e70b6c-b304-4ad6-b158-63efd9c694d2 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-13a73320-9399-4882-97b3-bd61bc93c3fe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node_reads_reservation_once_sqlite [0.108475s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_nodes.DbNodeTestCase.test_reserve_node_reads_reservation_twice [0.119010s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.237559s] ... ok 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.TestRBACScoped.test_rbac_legacy_278_deploy_templates_deploy_template_id_patch_member [0.238957s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/ef77bdce-0fa4-4691-a578-ff02e0164cff WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e0245c73-2aaf-4693-80ea-a9e742cb8ab4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node [0.138093s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning [0.166445s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node_by_uuid [0.136508s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_279_deploy_templates_deploy_template_id_patch_observer [0.218967s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/452d8ad5-e7ed-4539-a9d3-dfe7f78986ca WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-70f169bc-a25d-4354-9588-2f01abcb8770 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning_manage_agent_boot_false [0.155796s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_nodes.DbNodeTestCase.test_touch_node_provisioning [0.116636s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning_not_found [0.071250s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_280_deploy_templates_deploy_template_id_delete_admin [0.239553s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/a0957ba2-e9eb-409d-9b72-33ae8e62e959 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-259e4a64-159a-4dc5-b28e-dc99f874db12 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node [0.171448s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node_by_uuid [0.128953s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_281_deploy_templates_deploy_template_id_delete_member [0.222820s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/42bca4f8-7dad-44c0-8fda-fe27b29671b9 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-07913b35-da6a-4643-8b8e-58b4ce412336 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node [0.101126s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_associate_and_disassociate [0.138710s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_282_deploy_templates_deploy_template_id_delete_observer [0.240512s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/33b856a8-48b1-4217-8e4b-dbed2889811c GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0e6a0441-ffee-428c-89f3-c60a7e955df4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at [0.127684s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at_inspecting [0.103839s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_283_chassis_post_admin [0.241439s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-5affcd05-8723-41b5-ad1a-b97a6b2e39be X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at_inspectwait [0.097403s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at [0.095047s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_284_chassis_post_member [0.203529s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-fc18e132-afec-46de-8cb0-d8636460a583 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at_inspecting [0.092458s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_disable_power_off [1.244867s] ... ok 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.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at_inspectwait [0.086577s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_285_chassis_post_observer [0.226672s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-ee556167-7d78-4821-bd16-96f7728c5070 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_instance_already_associated [0.158436s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_service [0.229685s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_nodes.DbNodeTestCase.test_update_node_name_duplicate [0.132924s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_286_chassis_get_admin [0.278299s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-2f4ce60d-f412-42e7-817b-cd35cf445348 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_service_disable_power_off [0.185366s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_nodes.DbNodeTestCase.test_update_node_no_provision [0.130619s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_not_found [0.065977s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_provision [0.100966s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_287_chassis_get_member [0.208991s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-67eaa0eb-33f5-48e6-a225-f1d50116de1f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_with_smartnic_port [0.318022s] ... ok 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.TestRBACScoped.test_rbac_legacy_288_chassis_get_observer [0.187422s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-c23731bd-ac81-4187-af53-21f521f9b4c7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_289_chassis_detail_get_admin [0.127851s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-3cdfe031-b2f4-46a9-8d6f-f3bb07a0b390 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate [0.206980s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.197197s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_290_chassis_detail_get_member [0.207543s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-4892524d-db9b-435e-935b-37d0661a1b23 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_file_image_no_checksum [0.193454s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_291_chassis_detail_get_observer [0.261886s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-bed5296e-7ef7-466a-a05b-03191c31e55f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_instance_info_missing_params [0.209532s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_292_chassis_chassis_id_get_admin [0.238433s] ... 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-87c7ee41-7612-4ab9-a2c2-3ca09e60cf2f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_image_type [0.178621s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_invalid_proxies [0.143240s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_retries [1.298557s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_293_chassis_chassis_id_get_member [0.285753s] ... 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-833c2145-a90c-47bd-953d-2c568a2d5288 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints [0.193371s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints_iinfo [0.116393s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_294_chassis_chassis_id_get_observer [0.214111s] ... 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-53de2596-6481-4af1-866d-859d44079b17 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum [0.204405s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_295_chassis_chassis_id_patch_admin [0.258313s] ... 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-d3791118-9ce1-422e-86ed-2b7d234fe964 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum_os_algo [0.208703s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_nodes.DbNodeTestCase.test_update_node_retries_without_log_mock [0.788464s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_296_chassis_chassis_id_patch_member [0.242463s] ... 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-b0d29bac-6fa5-483b-8654-3994eec43637 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_uuid [0.091303s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_algo [0.234636s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_297_chassis_chassis_id_patch_observer [0.323908s] ... 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-117b9a29-4e0f-4899-8a8c-5e8999c29667 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_checksum [0.246346s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_nonglance_image_no_os_image_hash [0.276157s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_298_chassis_chassis_id_delete_admin [0.322094s] ... 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-fb58b93a-f969-453e-8f09-bf203689904d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_oci_no_checksum [0.183255s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_299_chassis_chassis_id_delete_member [0.212320s] ... 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-216d5b33-5490-4fde-a80c-ad798d934a33 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_storage_should_write_image_false [0.136020s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_tags [1.003002s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_300_chassis_chassis_id_delete_observer [0.260371s] ... 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-3830dccd-9648-4240-a1ff-443f6a517973 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image [0.173134s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_nodes.DbNodeTestCase.test_update_node_with_traits [0.110123s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node [0.114156s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_basic_auth_success [0.199036s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_301_node_history_get_admin [0.234215s] ... 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-61a999f1-13c5-4605-94a1-aba101958e3f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node_uuid [0.125964s] ... ok {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node [0.152681s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_basic_auth_success_blocked [0.239085s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_302_node_history_get_member [0.241595s] ... 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-15c40672-4c45-4262-b720-729276c48620 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node_uuid [0.115225s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_create [0.053412s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_image_source_is_url [0.207022s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_303_node_history_get_observer [0.200969s] ... 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-cd55ff99-3bf6-434d-a33b-700c3c914c8b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_create_duplicate_name [0.087362s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_create_duplicate_uuid [0.107717s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_oci_authorization [0.136240s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_create_invalid_step_no_interface [0.083427s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_304_node_history_get_entry_admin [0.236879s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/19013e1e-bcfa-4091-9a75-3871006f3ee6 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-328a80fc-0488-490a-9808-6439423e3e1d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_partition_image [0.125551s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_create_no_steps [0.074669s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_destroy [0.099134s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_render_configdrive [0.133532s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_305_node_history_get_entry_member [0.238985s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/df218ebc-ba67-40a6-8a81-6cc0dfa6d211 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-58d16b5c-a790-4e31-ae74-9e77fe27bdbd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_by_id [0.109532s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_with_no_proxy_without_proxies [0.143780s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_by_name [0.151657s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_with_proxies [0.126026s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_rbac_legacy_306_node_history_get_entry_observer [0.218367s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/f2d53f15-6d79-4544-b3c3-e2a5230a7160 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ebc8fb41-c470-40ec-91b9-adc950ef3418 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_by_uuid [0.080232s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.BootInstanceTest.test_boot_instance [0.100275s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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 [0.070474s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_list_by_names [0.057668s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_list_by_names_no_match [0.063264s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.BootInstanceTest.test_boot_instance_no_power_on [0.164026s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_001_values ... SKIPPED: These are fake reference values for YAML templating {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_get_runbook_list_sorted [0.063348s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_duplicate_name [0.070365s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.ContinueServiceTest.test_continue_servicing [0.203393s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_extra [0.071962s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_name [0.070894s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_not_found [0.063124s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.ContinueServiceTest.test_continue_servicing_after_reboot [0.205561s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_add [0.071072s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_002_nodes_post_admin [0.461307s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-bb39e89b-501c-47f5-85d4-d923e20725b4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_steps_remove_all [0.111040s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.ContinueServiceTest.test_continue_servicing_reboot [0.168345s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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 [0.045523s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_steps_replace_args [0.034526s] ... ok {1} ironic.tests.unit.db.test_runbooks.DbRunbookTestCase.test_update_uuid_not_allowed [0.034708s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target [0.043253s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_nodeid_and_bootindex [0.083506s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_base.ContinueServiceTest.test_continue_servicing_running [0.247419s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_uuid [0.073696s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command [0.091300s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_destroy_volume_target [0.086494s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_agent_client [0.088010s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_id [0.090740s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code [0.065867s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_uuid [0.055463s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_agent_busy [0.076276s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list [0.064939s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_agent_busy_conflict [0.069341s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list_sorted [0.066434s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_okay_error_typeerror_embedded [0.077084s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id [0.052911s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id_that_does_not_exist [0.043530s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect [0.105888s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id [0.035815s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_command_is_running [0.070532s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id_that_does_not_exist [0.064025s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target [0.059567s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_command_not_running [0.082565s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_003_nodes_post_member [1.063248s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-361262ee-12df-4267-80c2-d8a9130954bc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_duplicated_nodeid_and_bootindex [0.052016s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_no_command_running [0.089544s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_fails_invalid_id [0.071112s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_wrong_command_running [0.065495s] ... ok {1} ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_uuid [0.052062s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_json [0.075952s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_post [0.073662s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_004_nodes_post_observer [0.296729s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/nodes WITH {'name': 'node', 'driver': 'fake-driverz'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-27d6bd0f-d88b-49f3-bfc8-d8caf0a3135a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task [0.162674s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_client.TestAgentClient.test__command_poll [0.072079s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_failed [0.123149s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_client.TestAgentClient.test__command_verify [0.094367s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_005_nodes_get_node_admin [0.227226s] ... 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-5391afe9-c14a-4995-b10b-7fb24c3270db X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_config [0.092059s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_missing [0.164259s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_client.TestAgentClient.test__command_verify_disable [0.082823s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_disable_in_driver_info [0.065977s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_partial_failed [0.134472s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_client.TestAgentClient.test__command_verify_internal [0.088629s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_006_nodes_get_node_member [0.273048s] ... 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-b0b240a7-cef3-4d3b-b8bd-0be6dfb87277 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_invalid_file [0.086885s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_partial_failed_idrac5 [0.118889s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_client.TestAgentClient.test__get_command_body [0.082890s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_still_processing [0.121017s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_client.TestAgentClient.test__get_command_url [0.090297s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_007_nodes_get_node_observer [0.294815s] ... 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-588932a5-05d2-4ef2-a170-fbb296a6b641 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url_fail [0.103802s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_with_export [0.125930s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_client.TestAgentClient.test_content_type_header [0.101522s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_with_export_failed [0.118286s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_client.TestAgentClient.test_execute_clean_step [0.064440s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_not_drac [0.064826s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_execute_service_step [0.081835s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_008_nodes_get_node_other_admin [0.291714s] ... 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-58413493-00f1-428b-a95c-ed6d3a754f74 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status [0.083002s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_no_task_monitor_url [0.076437s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue [0.115292s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_exc [0.079376s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_node_locked [0.097863s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_fallback [0.085438s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__query_import_configuration_status_node_notfound [0.076346s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_009_nodes_get_admin [0.285153s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ba1433ee-f31e-4aa3-aff5-ac76be46ba63 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_fallback_restricted [0.071373s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_failed_clean [0.106737s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_client.TestAgentClient.test_get_clean_steps [0.072007s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status [0.087341s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_failed_deploy [0.123982s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_client.TestAgentClient.test_get_commands_status_no_retries [0.092596s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_010_nodes_get_other_admin [0.301053s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes WITH {} GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c7b4bb9c-7109-4b40-9770-5a29bf776887 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"nodes": []} {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_retries [0.069986s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_success_clean [0.178635s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_client.TestAgentClient.test_get_commands_status_verify [0.074919s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_service_steps [0.067175s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_011_nodes_detail_get_admin [0.201548s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2fc2833f-5148-42c6-9470-cd35deb38a48 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_service_steps_older_client [0.048368s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__set_success_deploy [0.197821s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_client.TestAgentClient.test_install_bootloader [0.085574s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold [0.078164s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader_with_prep [0.070299s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_012_nodes_detail_get_member [0.224569s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-95b8d896-e316-4411-bba3-c3b7fdee6242 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_power_off [0.061945s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_data_empty [0.092703s] ... ok {2} ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_sync [0.043931s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_data_missing [0.038707s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_interface_missing [0.046757s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__validate_conf_mold_interface_not_supported [0.034303s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_013_nodes_detail_get_observer [0.172143s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c9c507d3-9587-4ec6-a815-e8c39660258b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure [0.102387s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.DracRedfishManagementTestCase.test__validate_conf_mold_oem_missing [0.052124s] ... ok {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_exception [0.084776s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.DracRedfishManagementTestCase.test_clear_job_queue [0.107337s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_014_nodes_node_ident_get_admin [0.149134s] ... 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-8dc32b5c-1a27-43c3-bbca-01c7e99dd3ae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_none_requested [0.092787s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_unsupported [0.075224s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.DracRedfishManagementTestCase.test_clear_job_queue_missing_attr_clean_step [0.135607s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_015_nodes_node_ident_get_member [0.126524s] ... 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-32137531-1cf0-44c2-ab09-2c8ce63a5aaf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure [0.088246s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_016_nodes_node_ident_get_observer [0.144747s] ... 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-28758e8c-c3e5-4c02-af85-219eb996c040 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_exception [0.086777s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_none_requested [0.107128s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_017_nodes_node_ident_patch_admin [0.192431s] ... 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-4d0434dc-8bb6-4589-9ad4-3ef9ba8949b3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_unsupported [0.093518s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.SwitchPxeConfigTestCase.test_switch_ipxe_config_whole_disk_image [0.034574s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_iscsi_boot [0.056348s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_whole_disk_image [0.053141s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_018_nodes_node_ident_patch_member [0.181641s] ... 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-ef5be65d-3e7e-4efe-9f75-873f03a3ff04 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_019_nodes_node_ident_patch_observer [0.165467s] ... 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-adc5885d-7186-41b1-a76f-0d7d59f0a771 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_clear_job_queue_missing_attr_verify_step [0.717309s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.DracRedfishManagementTestCase.test_export_configuration_export_failed [0.072356s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_name_missing [0.048069s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_020_nodes_node_ident_delete_admin [0.177720s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-59bd4794-5936-4c8a-b815-03a6ed944786 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_export_configuration_success [0.078044s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_file_not_found [0.040069s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_incorrect_schema [0.065184s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_021_nodes_node_ident_delete_member [0.168065s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ca5872cb-3adb-4eaa-b975-58667c19db18 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_name_missing [0.065969s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_elilo_config_whole_disk_image [0.634454s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_success [0.085076s] ... ok {2} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_config_whole_disk_image [0.047349s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_022_nodes_node_ident_delete_observer [0.155845s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-86506d2f-02dc-4cf2-850d-0e9690025153 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_ipxe_config_whole_disk_image [0.037404s] ... ok {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_export_configuration_success [0.103358s] ... ok {2} ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageHandlerTestCase.test_redfish_kernel_param_config [0.051098s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_023_nodes_validate_get_admin [0.149988s] ... 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-2bd028d4-33a4-4225-b2f0-1d7ab2d21c33 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_known_good_state [0.105740s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.InspectFunctionTestCase.test_create_ports_if_not_exist [0.190329s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.DracRedfishManagementTestCase.test_reset_idrac [0.102572s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_024_nodes_validate_get_member [0.152986s] ... 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-98584a4b-9a34-462d-b7e8-c78ae98df023 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac_missing_attr_clean_step [0.154693s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_025_nodes_validate_get_observer [0.157762s] ... 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-eaa958ae-a38c-4f17-bad4-c247949c5a00 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_inspect_utils.InspectFunctionTestCase.test_create_ports_if_not_exist_attempts_port_creation_blindly [0.224449s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.InspectFunctionTestCase.test_create_ports_if_not_exist_mac_exception [0.073083s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_management.DracRedfishManagementTestCase.test_reset_idrac_missing_attr_verify_step [0.161723s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_026_nodes_maintenance_put_admin [0.130938s] ... 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-96d4bd28-bb94-4346-b57e-782e88dd47a9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__allocate_port [0.100560s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.110643s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_027_nodes_maintenance_put_member [0.156510s] ... 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-21501014-9967-401c-9691-4a6502ae0a6b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_cold [0.121174s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_managers_fail [0.105449s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.127564s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.097740s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_028_nodes_maintenance_put_observer [0.218654s] ... 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-cdd13fd0-3ee1-4e1d-a50c-facad21765b2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.drac.test_utils.DracUtilsOemManagerTestCase.test_execute_oem_manager_method_oem_not_found [0.092243s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.131387s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test__get_certificate_file_list [0.055217s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_empty [0.061007s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_debug [0.109750s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_empty_no_path [0.046136s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_029_nodes_maintenance_delete_admin [0.250184s] ... 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-e937a99b-f3b1-4c04-bd6b-3791b2c65da0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_none [0.051455s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_failed [0.101231s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_certificate_file_list_string_type [0.041327s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_floppy_image_name [0.045543s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_missing_sensor_reading [0.095156s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_ok [0.072210s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_030_nodes_maintenance_delete_member [0.216872s] ... 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-a1c7cfdb-9953-45ed-bcea-0fe04e44f5e5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image [0.125297s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test__prepare_floppy_image_use_webserver [0.077302s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_031_nodes_maintenance_delete_observer [0.124394s] ... 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-af878bc1-c16b-4b50-af2e-0d6a45ed1f5b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_None [0.050780s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_add_certificates_false [0.052027s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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__release_allocated_port [0.213751s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_add_certificates_invalid [0.051594s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_detect_vendor [0.075184s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_032_nodes_management_boot_device_put_admin [0.144650s] ... 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-ebed7487-a66f-4b8b-a771-f34b3bac9381 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_raises_ilo_error [0.070915s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_fail [0.056085s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.046565s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_add_certificates_true [0.058438s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_force_boot_device_persistent [0.062448s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_add_certificates_true_default [0.060672s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_attach_vmedia [0.028189s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state [0.041008s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_attach_vmedia_fails [0.030088s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state_exception [0.038790s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_033_nodes_management_boot_device_put_member [0.263394s] ... 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-d3338f3f-2780-46b6-8abf-3ac7d2e49dbf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot [0.062764s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_properties [0.047375s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc [0.051532s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_force_set_boot_device_ok_bios [0.049532s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_get_boot_device [0.053485s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc_resource_not_found [0.072333s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_for_webserver [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( {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_fail [0.071298s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_clear_certificates [0.038196s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_034_nodes_management_boot_device_put_observer [0.223675s] ... 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-12043399-96e6-4e61-a68e-280e24fccfff X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_persistent [0.060446s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_clear_certificates_default [0.038136s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_get_boot_device_unknown_dev [0.050251s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_clear_certificates_raises_ilo_error [0.074220s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_get_supported_boot_devices [0.039524s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_copy_image_to_swift [0.032430s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_fail [0.056631s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_copy_image_to_swift_throws_error_if_swift_operation_fails [0.034589s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server [0.029062s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_ok [0.058746s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_035_nodes_management_boot_device_get_admin [0.219283s] ... 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-1d2b8b9f-d150-4e61-950f-6f44dd23b5b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server_fails [0.030511s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_destroy_floppy_image_from_web_server [0.051085s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.070204s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_download_file_url [0.059355s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_bad_device [0.122865s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_036_nodes_management_boot_device_get_member [0.199507s] ... 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-35143884-f450-43b3-a7d4-25129706a8ef X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_exec_failed [0.085899s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_037_nodes_management_boot_device_get_observer [0.144980s] ... 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-04fdd312-1dca-4293-8bb7-1411e5ad12a1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_ok_bios [0.108823s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_persistent_bios [0.120035s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_038_nodes_management_boot_device_supported_get_admin [0.176605s] ... 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-368d250b-7b42-42d9-9557-7e23bdb8f63f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_download_http_url [0.419571s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices [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.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi [0.107516s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_eject_vmedia_devices_raises [0.058891s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_039_nodes_management_boot_device_supported_get_member [0.156731s] ... 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-a1a165ec-5f59-4750-ad37-730657928878 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_current_boot_mode [0.036032s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_onetime_smci [0.100177s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_get_current_boot_mode_fail [0.047477s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile [0.042475s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent [0.083291s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_040_nodes_management_boot_device_supported_get_observer [0.136017s] ... 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-28437abb-732e-4c26-bf8d-8967c44d36c6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile_boolean [0.047170s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent_smci [0.056231s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_get_ilo_object_snmp [0.055573s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_unknown_exception [0.046083s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_041_nodes_management_inject_nmi_put_admin [0.133680s] ... 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-4188ca40-c4e3-450d-922c-0ad6337aace3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_1_bios [0.047436s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_get_secure_boot_mode [0.094519s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.056132s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_bios [0.082523s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_042_nodes_management_inject_nmi_put_member [0.144915s] ... 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-fadec532-a7d9-4423-abc5-7601ef28b3ee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_without_timeout_2_bios [0.096171s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_fail [0.086047s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.095490s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_043_nodes_management_inject_nmi_put_observer [0.147152s] ... 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-09a29681-de6d-473f-9601-7c9e4f689727 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_not_supported [0.103480s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.107610s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_get_server_post_state [0.089714s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_044_nodes_states_get_admin [0.143382s] ... 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-c9c2d148-dc9d-482a-8f6e-026e01a451d7 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_good [0.096641s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_get_server_post_state_fail [0.095312s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.097578s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_get_server_post_state_not_supported [0.096183s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_045_nodes_states_get_member [0.149425s] ... 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-ae4f727b-b4cd-48f3-9da1-935a3a596671 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift [0.085461s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_already_off [0.159583s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_notfound_exc [0.151333s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_disable_power_off [0.099733s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_operror_exc [0.067775s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_off [0.088331s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.049586s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_remove_image_from_web_server [0.103207s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_ok [0.056303s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_list [0.056562s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_fail [0.053138s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_str [0.064173s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_ok [0.058207s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_set_boot_mode [0.046962s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_fail [0.039097s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_set_boot_mode_with_IloOperationError [0.031373s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_046_nodes_states_get_observer [0.598511s] ... 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-0173369f-da08-4e8b-86a6-f7486200fea9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_without_set_pending_boot_mode [0.050887s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_from_clean_step [0.083745s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_set_secure_boot_mode [0.054170s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.040458s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_fail [0.059897s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.041645s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.043263s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_047_nodes_states_power_put_admin [0.219373s] ... 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-50cd160a-2c3e-46cb-9eae-e50edffb336f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_not_supported [0.094385s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.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_ipmitool.IPMIToolDriverTestCase.test_set_power_off_ok [0.059679s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_setup_uefi_https_persistent_false [0.103687s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_048_nodes_states_power_put_member [0.213714s] ... 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-d37fccc7-89c5-4d29-b5a6-31782ad7a3e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_persistent_true [0.104499s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_setup_uefi_https_raises_ilo_error [0.122379s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.331278s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_setup_uefi_https_raises_not_supported [0.099590s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_049_nodes_states_power_put_observer [0.224025s] ... 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-14e91d8a-85c5-45a6-86c5-c4935302e4e9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_fail [0.052626s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.041779s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.050460s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_setup_uefi_https_scheme_http [0.165346s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.078548s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.066063s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_050_nodes_states_boot_mode_put_admin [0.276623s] ... 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-27a1d9dc-8ada-45b7-aab6-a8b36f0c9194 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot_timeout [0.055254s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_setup_vmedia [0.161429s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.087779s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.041514s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_051_nodes_states_boot_mode_put_member [0.184187s] ... 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-77122b83-2e0c-4946-873f-5d4d02f89ce3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_ok [0.065099s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_parameters [0.235479s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.073535s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_052_nodes_states_boot_mode_put_observer [0.156231s] ... 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-9aa49420-4078-4445-9d2e-8d02f86dffec X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_ok [0.078614s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_swift [0.175567s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.097126s] ... ok 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.TestRBACScoped.test_scoped_canary_053_nodes_states_secure_boot_put_admin [0.170313s] ... 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-566837a2-3485-479b-82b1-26aeeffee255 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_warm [0.100713s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_url [0.158776s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.052342s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_054_nodes_states_secure_boot_put_member [0.142879s] ... 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-6cae16b1-041a-49a0-8c85-9bef829b58be X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_send_raw_bytes_with_http_method [0.051494s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.057483s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_cold_good [0.041488s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_setup_vmedia_without_params [0.187124s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_055_nodes_states_secure_boot_put_observer [0.147035s] ... 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-91f7b6b5-0e58-44ac-8cb0-25acf9bcaea5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_good [0.059530s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.071491s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.059347s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_056_nodes_states_provision_put_admin [0.177239s] ... 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-ffb7b47e-585d-4009-85f4-b10e5b847a54 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_fail [0.048192s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_common.IloCommonMethodsTestCase.test_update_boot_mode [0.236825s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.061912s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_vendor_routes [0.048911s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_capabilities_exist [0.132979s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_057_nodes_states_provision_put_member [0.228047s] ... 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-89c87cf5-7fc7-43f3-bf7c-c328e5ab78f2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test___set_and_wait_no_needless_status_polling [0.082605s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.IPMIToolPrivateMethodTestCase.test__check_cipher_suite_errors [0.028934s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_empty_list [0.025311s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_instance_info_exists [0.130834s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_one_element [0.029093s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__choose_cipher_suite_returns_last_to_first [0.035196s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_IPMI_version_1_5 [0.047127s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_058_nodes_states_provision_put_observer [0.229202s] ... 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-c8cc6d64-cc01-4682-a8e4-2825bd78d4d4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite [0.045549s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_error_noconfig [0.038995s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_legacy [0.184764s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_set_with_error_config [0.043038s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_cipher_suite_set_with_error_noconfig [0.063313s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_exception [0.028294s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_prop_boot_mode_exist [0.133356s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_first_call_to_address [0.049030s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_059_nodes_states_raid_put_admin [0.240275s] ... 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-98ecd0c0-64bd-4079-b19d-eef7b1c44c26 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_no_sleep [0.044139s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown [0.116250s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_sleep [0.044190s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_try_different_cipher_suite [0.042972s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown_except [0.096348s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_two_calls_to_diff_address [0.029230s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_check_exit_code [0.079172s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_060_nodes_states_raid_put_member [0.262663s] ... 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-97ff4e3a-077d-4738-b45d-cc8e2fac33bb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_dual_bridging [0.048734s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_use_def_boot_mode [0.154816s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_username [0.035959s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_ironic_retries [0.046103s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_ironic_retries_multiple [0.026544s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_port [0.038302s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_ipmi_properties [0.146816s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_single_bridging [0.033154s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timeout [0.038633s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_061_nodes_states_raid_put_observer [0.256424s] ... 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-d83bf4ef-0fef-4ed9-a169-fb1d2265eae2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timing [0.039916s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_timing [0.029277s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_username [0.031194s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__ipmitool_timing_args [0.032036s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_redfish_properties [0.210244s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.IPMIToolPrivateMethodTestCase.test__parse_driver_info [0.070315s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values [0.080726s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_have_credentials [0.050347s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_062_nodes_states_console_get_admin [0.290119s] ... 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-1f31f695-a69a-409c-b1cc-4cd97df2002a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_port [0.065541s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values_invalid_param [0.081208s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_prot_version [0.047809s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite [0.059862s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values_no_param [0.091720s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite_ipmi_1_5 [0.090174s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum [0.093997s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_063_nodes_states_console_get_member [0.238842s] ... 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-fff1ae38-0f96-46bc-94c2-92bdb2ca8937 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite_not_a_number [0.068649s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_sha256 [0.084537s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key [0.054150s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_sha512 [0.085181s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_064_nodes_states_console_get_observer [0.173227s] ... 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-65d119fe-8130-4e30-863b-48fed9472d00 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_hex_kg_key_odd_chars [0.089092s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_failed_validation [0.063236s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_port_valid [0.093023s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_nonexistent_file [0.067992s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_065_nodes_states_console_put_admin [0.157520s] ... 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-96006d66-b9bf-4460-8a21-8535a55c6e32 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_prot_version_1_5 [0.066585s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_numeric_password [0.058019s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_terminal_port_allocated [0.054530s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_terminal_port_specified [0.070473s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_066_nodes_states_console_put_member [0.234768s] ... 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-d78310c0-69c4-4023-b08e-a175ca05ab9b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_undefined_credentials [0.062618s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_missing_parameters [0.069408s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_not_supported [0.062626s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_067_nodes_states_console_put_observer [0.163555s] ... 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-8bc95608-f506-4450-9dbf-4c714156aa55 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_pass [0.064302s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_068_nodes_vendor_passthru_methods_get_admin [0.150094s] ... 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-60712614-52e0-4f89-96fa-551c5b131dae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_fail_clean [0.619936s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_invalid_bridging_type [0.127005s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_069_nodes_vendor_passthru_methods_get_member [0.090743s] ... 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-dfd187f9-e429-46f7-aeb2-836f8da8465a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_fail_deploy [0.102826s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_no_bridging [0.129552s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_070_nodes_vendor_passthru_methods_get_observer [0.124492s] ... 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-e231acd5-aecd-4b80-9178-0999acfebc71 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_missing_parameters [0.090889s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_not_supported [0.157132s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_071_nodes_vendor_passthru_get_admin [0.091223s] ... 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-2be59179-e60e-4201-a72e-142b95fa5f65 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_not_supported [0.098864s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_step_ok [0.113964s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_072_nodes_vendor_passthru_get_member [0.092518s] ... 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-7562e57f-d8cd-470c-9c6a-6ffc21f3ea1c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_pass [0.082693s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_073_nodes_vendor_passthru_get_observer [0.144106s] ... 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-14e21b25-fbad-466b-b0ce-b22cd27abd7c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_on_max_retries [0.201517s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_environment_error_clean [0.273711s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_074_nodes_vendor_passthru_post_admin [0.129992s] ... 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-a399d005-f92d-40a0-baa8-236b39ac3550 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_075_nodes_vendor_passthru_post_member [0.083522s] ... 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-a2f7395e-aaca-4d97-85b2-00b4b6711a9e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_error [0.115964s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_076_nodes_vendor_passthru_post_observer [0.092901s] ... 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-26a11734-1336-40c5-82d8-fd46679cb0e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception [0.087585s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_environment_error_deploy [0.227279s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_077_nodes_vendor_passthru_put_admin [0.084295s] ... 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-835d7a6c-6424-426f-a5d3-e6ee90a427f9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_off [0.086299s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_on [0.095635s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_078_nodes_vendor_passthru_put_member [0.134180s] ... 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-70c26b96-6829-497a-baad-f7a7af2cbfb5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_swift_error_clean [0.185553s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_caller_exception [0.087844s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_079_nodes_vendor_passthru_put_observer [0.077932s] ... 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-e203a933-a900-4a02-98ca-474d1c499e42 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_str_password [0.080602s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_080_nodes_vendor_passthru_delete_admin [0.085062s] ... 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-6352231c-2782-4bbd-b517-e426325eba5f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_swift_error_deploy [0.188229s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_tempfile_known_exception [0.093344s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_081_nodes_vendor_passthru_delete_member [0.090771s] ... 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-762cd766-bc4f-479a-926f-f95cc93b91c1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_tempfile_unknown_exception [0.081904s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_082_nodes_vendor_passthru_delete_observer [0.096493s] ... 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-737d329c-2fb4-48ab-b778-8e8a97cfbd9d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_unknown_exception_clean [0.190303s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_with_numeric_password [0.089290s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__prepare_ipmi_password_write_exception [0.098814s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_unknown_exception_deploy [0.220539s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_083_nodes_traits_get_admin [0.260833s] ... 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-7cbdc699-8072-4f49-9e31-1e42e4ea17f5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_with_logs_clean [0.134414s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_084_nodes_traits_get_member [0.164753s] ... 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-4a21cf3a-9c73-4492-9d7e-8f14cc0a8ee8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_with_logs_deploy [0.100819s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_085_nodes_traits_get_observer [0.160038s] ... 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-5c16ea8e-01c8-4c9e-b2fd-235a5ad2dc5e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_without_logs_clean [0.144281s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__write_firmware_sum_final_without_logs_deploy [0.128081s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_086_nodes_traits_put_admin [0.200775s] ... 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-4c033518-372d-44f1-a86a-b1f170a75b4a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license [0.176542s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.IPMIToolPrivateMethodTestCase.test__set_and_wait_explicit_reboot [0.886987s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_087_nodes_traits_put_member [0.258377s] ... 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-6b48a0cc-8dce-4ba2-bca2-0508cf93c5a9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license_no_or_invalid_format_license_key [0.193687s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.IPMIToolPrivateMethodTestCase.test__soft_power_off [0.163558s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_088_nodes_traits_put_observer [0.208955s] ... 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-c99ad725-a81f-4c5b-8675-28d6fb77fa5c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate [0.133266s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_fileurl [0.118514s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.IPMIToolPrivateMethodTestCase.test__soft_power_off_max_retries [0.209655s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_httpurl [0.057647s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_add_https_certificate_url_exception [0.066443s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_bmc_initialization_in_progress [0.157285s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target [0.087487s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_insufficient_resources_for_session [0.123002s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_failed [0.072031s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_in_bios [0.066619s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_secure_boot_keys [0.046847s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_node_busy [0.134454s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_create_csr [0.052433s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_flash_firmware_sum_mode_with_component [0.056193s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_out_of_space [0.108558s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_fail [0.051808s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_089_nodes_traits_delete_admin [0.728087s] ... 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-870526ee-e4f6-4d56-9064-5492490f1030 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_next_boot [0.051712s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_timeout [0.097390s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent [0.072253s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_bmc_initialization_in_progress [0.091370s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent_fail [0.052430s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_090_nodes_traits_delete_member [0.182765s] ... 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-2722d4e5-cf61-460d-8054-d58f63076e63 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_mode [0.061180s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_insufficient_resources_for_session [0.091581s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_mode_fail [0.041265s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_properties [0.045758s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_node_busy [0.089235s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_091_nodes_traits_delete_observer [0.181288s] ... 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-0e30e948-abb6-40fb-aa8c-7d38d29debbe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_sensor_data [0.072711s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_out_of_space [0.090278s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_devices [0.057698s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_1___legacy_bios_only_____bios___ [0.049983s] ... ok {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_timeout [0.094869s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_2___uefi_only_____uefi___ [0.043052s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_092_nodes_traits_trait_put_admin [0.187815s] ... 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-27b680ce-40ac-455c-b8a2-4b5b980ff008 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_bmc_initialization_in_progress [0.090092s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_modes_3___legacy_bios_and_uefi_____uefi____bios___ [0.060169s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi [0.061294s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_insufficient_resources_for_session [0.097594s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_093_nodes_traits_trait_put_member [0.144515s] ... 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-9d111dd2-383f-4ef8-befc-fe40399ec025 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_failed [0.054548s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_not_supported [0.053843s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_node_busy [0.098977s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_bios_to_default [0.078121s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_094_nodes_traits_trait_put_observer [0.147450s] ... 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-579fce54-0369-4dcd-8575-c08bc34afadf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_out_of_space [0.108948s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo [0.073077s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_timeout [0.087330s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_095_nodes_traits_trait_delete_admin [0.142941s] ... 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-6c0e22af-d518-44f2-bb43-0a8076a453fe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_no_password [0.090592s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_ok [0.082042s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_096_nodes_traits_trait_delete_member [0.145572s] ... 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-0c7e6ccd-12c2-4d8a-a452-4c69c4fb2bcf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_maintenance [0.187332s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_pass_as_arg_ok [0.135176s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.iPXEBootRetryTestCase.test_check_boot_status_not_retry_with_token [0.092034s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_recent_power_change [0.080098s] ... ok {2} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_retry [0.047359s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.iPXEBootRetryTestCase.test_check_boot_status_wrong_state [0.045789s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_097_nodes_traits_trait_delete_observer [0.304989s] ... 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-d1e25090-b191-4c86-9910-51fbb3e17100 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_timeouts [0.047564s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_secure_boot_keys_to_default [0.272808s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.115272s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_security_parameters_update [0.203517s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_098_nodes_vifs_get_admin [0.283152s] ... 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-59e20ed8-5e7e-47e7-bff2-70929bca8682 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy_with_configdrive [0.147566s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_fail [0.167945s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_099_nodes_vifs_get_member [0.206269s] ... 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-87858953-8100-4215-8347-971505bda414 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_invalid_device [0.150711s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.368549s] ... ok 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.TestRBACScoped.test_scoped_canary_100_nodes_vifs_get_observer [0.195846s] ... 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-da61cd75-d0e1-48c7-9482-afcd673fae05 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_execute_clean_step [0.159911s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_101_nodes_vifs_post_admin [0.157745s] ... 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-0af992e4-713d-443b-b278-86b648515d66 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_102_nodes_vifs_post_member [0.132141s] ... 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-abbea255-efe6-4de2-9960-28d0ec058862 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_get_clean_steps [0.182538s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_103_nodes_vifs_post_observer [0.167576s] ... 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-e05b8277-ccc1-4fb4-adf1-76d6af9d34db X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_get_deploy_steps [0.157426s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_104_nodes_vifs_node_vif_ident_delete_admin [0.139091s] ... 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-c78837f6-df23-466e-8749-a0e66669cb0c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare [0.222095s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_105_nodes_vifs_node_vif_ident_delete_member [0.161698s] ... 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-8631866a-69d6-4051-a9f1-a8e72e2dc3bb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_ok [0.985125s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.196259s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_106_nodes_vifs_node_vif_ident_delete_observer [0.188904s] ... 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-efbb8bae-a0ee-4a63-8e9b-d2e93352f8c8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_fail [0.177147s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.144663s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_107_nodes_management_indicators_get_admin [0.159530s] ... 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-790c2f7e-6337-486d-a022-d6e4fbd3cc2f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_true [0.169185s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.268731s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_108_nodes_management_indicators_get_member [0.197162s] ... 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-c0d18f0b-eedf-4596-8ac7-668668b88827 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_mode [0.205028s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.146756s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.148421s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_109_nodes_management_indicators_get_observer [0.282695s] ... 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-fe35910a-1805-4147-a065-1a069f2b2102 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_mode_fail [0.231125s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.144561s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.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. {2} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_calls_boot_validate [0.097446s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_failed [0.228511s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_interface_mismatch [0.104824s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.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. {2} ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate_with_boot_iso [0.103962s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_in_bios [0.190325s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.SNMPClientTestCase.test___init__ [0.071434s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_112_nodes_management_indicators_component_ind_ident_put_allow ... SKIPPED: API appears to be broken and should be patched outside of this work. {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_read [0.130604s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_missed_properties [0.206665s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.SNMPClientTestCase.test__get_auth_v1_write [0.131430s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_113_portgroups_get_admin [0.240181s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f19e7170-8cf9-45ee-84b2-77b1dca763b8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_with_auth [0.233724s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.SNMPClientTestCase.test__get_auth_v3 [0.121996s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_client [0.060231s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_114_portgroups_get_member [0.188876s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c8bfb1d2-47e4-4656-b5ac-cee5da3665f5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_context [0.104009s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_without_auth [0.209313s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.SNMPClientTestCase.test__get_transport [0.148982s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_auth_failure_logging_threshold [0.110946s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_115_portgroups_get_observer [0.196806s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-acfeab5b-0680-4d0f-a929-f782c0fbf18e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_retries [0.185565s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_clean [0.182947s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_116_portgroups_post_admin [0.219030s] ... 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-7e2850c2-8865-485c-ba22-01e41d6a6b3d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_deploy [0.153688s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.SNMPClientTestCase.test__get_transport_custom_timeout [0.195800s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_117_portgroups_post_member [0.213367s] ... 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-2f164edb-dd1c-4010-b586-2166588b33ad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_clean [0.171732s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.SNMPClientTestCase.test__get_transport_err [0.161231s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_deploy [0.167247s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_118_portgroups_post_observer [0.219058s] ... 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-0cc90981-d85f-4d44-ac73-2ae8112877a5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_any_url_fails_clean [0.136067s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_119_portgroups_detail_get_admin [0.168563s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-45293850-87d8-47c0-ba75-95328d4a9784 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_120_portgroups_detail_get_member [0.134164s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fe25357f-fa16-4e1f-ba53-f9b4efb6505e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_any_url_fails_deploy [0.189557s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_checksum_validation_error_clean [0.135608s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_121_portgroups_detail_get_observer [0.153709s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/portgroups/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cad49819-0894-47e9-b36d-606f21e18f70 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_checksum_validation_error_deploy [0.152796s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_122_portgroups_portgroup_ident_get_admin [0.143743s] ... 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-27796aea-5604-4d7f-b071-16bdd6b2accd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get [0.790137s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_invalid_component_type_clean [0.132612s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.SNMPClientTestCase.test_get_err_engine [0.110080s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_123_portgroups_portgroup_ident_get_member [0.149196s] ... 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-05bea889-96a5-4ba2-94f3-2ecf4b9561df X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_invalid_component_type_deploy [0.109996s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.SNMPClientTestCase.test_get_err_transport [0.129939s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_124_portgroups_portgroup_ident_get_observer [0.155544s] ... 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-07737898-7a56-4258-ad3a-758d3c3eec08 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_no_firmware_url_clean [0.129692s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.SNMPClientTestCase.test_get_next [0.121007s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_error_for_no_firmware_url_deploy [0.120279s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_125_portgroups_portgroup_ident_patch_admin [0.197078s] ... 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-130be5a1-664b-45de-a7da-4372196cdfa2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_engine [0.156722s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_clean [0.118326s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_126_portgroups_portgroup_ident_patch_member [0.152106s] ... 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-74148f03-02d3-4dd9-8142-a2142365fbc5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_transport [0.125818s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_deploy [0.117556s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.SNMPClientTestCase.test_set [0.128502s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_with_component [0.104643s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_127_portgroups_portgroup_ident_patch_observer [0.182572s] ... 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-33ecdd5d-4ec1-4837-9518-ba10af343bfe X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_engine [0.146354s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_minimum_password_length [0.119850s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_128_portgroups_portgroup_ident_delete_admin [0.153412s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bfb92b59-d70e-4436-a9ae-24f5ac720716 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_validate [0.108594s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.SNMPClientTestCase.test_set_err_transport [0.130843s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_off [0.060945s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_129_portgroups_portgroup_ident_delete_member [0.158023s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ddd13737-d33d-4c44-8108-af16d38069a8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_invalid_component_clean [0.112668s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_on [0.054509s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_reset [0.059303s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_off [0.043966s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_invalid_component_deploy [0.111252s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_130_portgroups_portgroup_ident_delete_observer [0.150295s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9228abae-4c43-4fad-9d4a-4f0bebedcba1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_on [0.047305s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_snmp_objects [0.044700s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_swift_url_clean [0.121469s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_masterswitchplus_power_off [0.046718s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_131_nodes_portgroups_get_admin [0.127683s] ... 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-6137fb60-95aa-404d-99c7-a83ca3e25c66 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_on [0.048208s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_swift_url_deploy [0.125572s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_masterswitchplus_power_reset [0.069238s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_off [0.040462s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_132_nodes_portgroups_get_member [0.158113s] ... 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-01561b67-696d-4ce3-8628-9b99464a2a37 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_on [0.055511s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_without_component_clean [0.120546s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_masterswitchplus_snmp_objects [0.043564s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_off [0.049770s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_on [0.077871s] ... ok {1} ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_without_component_deploy [0.165954s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_reset [0.078799s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_accelerators.AcceleratorsTestCase.test_accelerators [0.128622s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_state_off [0.076705s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_on [0.067497s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_architecture.ArchitectureTestCase.test_architecture [0.095768s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_off [0.091678s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_on [0.069467s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_memory.MemoryTestCase.test_memory [0.144273s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_reset [0.084566s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_all_valid_data [0.104629s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_off [0.056877s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_133_nodes_portgroups_get_observer [0.772746s] ... 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-06bea110-ab53-448c-80c5-2a302e3203ed X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_bad_value_linkagg [0.085531s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.058735s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_snmp_objects [0.071329s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_bad_value_macphy [0.088613s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_snmp_objects [0.046198s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_134_nodes_portgroups_detail_get_admin [0.164416s] ... 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-8cf39f03-6de4-43be-95b1-d475ff9d101f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_off [0.062962s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_chassis_ids [0.110202s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.031444s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_reset [0.029990s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_off [0.026774s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_duplicate_tlvs [0.096695s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_on [0.026881s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_135_nodes_portgroups_detail_get_member [0.190671s] ... 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-5d4ee604-0d5c-49be-bfea-e62ab4dd8926 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_snmp_objects [0.029405s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_off [0.027643s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on [0.028994s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_invalid_ip [0.097957s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_cached_driver [0.025345s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_reset [0.044118s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_multiple_interfaces [0.086691s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_off [0.037993s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_null_strings [0.073137s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_136_nodes_portgroups_detail_get_observer [0.221825s] ... 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-048dec7c-e73f-4574-b86a-35bae6b2ad52 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_on [0.087898s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_old_format [0.046998s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.056249s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_truncated_int [0.040889s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_unknown_pdu [0.076904s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_137_ports_get_admin [0.201381s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-782fba21-0adc-472c-b13b-92b66c7ed03e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_off [0.065395s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_on [0.054510s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_reset [0.048809s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_snmp_objects [0.064224s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_138_ports_get_member [0.203140s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6598c427-9e29-455c-a2fb-a9591e49724e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_truncated_mac [0.361049s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_baytech_mrp27_power_state_off [0.058268s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_unhandled_oui [0.049119s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_baytech_mrp27_power_state_on [0.049122s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_parse_lldp.ParseLLDPTestCase.test_unhandled_tlvs [0.055966s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_cyberpower_power_off [0.056690s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_on [0.058307s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_139_ports_get_observer [0.215700s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4f6ae8bb-05b6-4d43-a4dc-68fd0cd21558 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_pci_devices.PciDevicesTestCase.test_pci_devices [0.076062s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_physical_network.PhysicalNetworkTestCase.test_physical_network [0.054545s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_reset [0.099555s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.UpdatePortsTestCase.test_keep_added [0.092203s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_cyberpower_power_state_off [0.076190s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_on [0.054234s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_140_ports_post_admin [0.238480s] ... 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-8bea03bc-2216-41f6-b65f-8b1603b1f992 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_snmp_objects [0.047540s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.UpdatePortsTestCase.test_keep_all [0.152586s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_eaton_power_power_off [0.066698s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_on [0.063025s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_reset [0.044221s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.UpdatePortsTestCase.test_keep_present [0.154816s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_141_ports_post_member [0.251145s] ... 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-cb0e525d-550f-4b78-a18a-07ca04fc9296 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_off [0.063443s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_on [0.047344s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_off [0.043878s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_ports.UpdatePortsTestCase.test_keep_pxe_enabled [0.164229s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_eaton_power_power_state_pending_on [0.060181s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_142_ports_post_observer [0.220982s] ... 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-edd8bd25-703e-45f9-a409-670568979adb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_snmp_objects [0.054274s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_ramdisk_error.RamdiskErrorTestCase.test_ramdisk_error [0.092499s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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 [0.060760s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_all_match [0.093203s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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 [0.079859s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_first_match_on_skip_list_use_second [0.062866s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_143_ports_detail_get_admin [0.211398s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-21bfefc9-027b-465f-840c-4956f185150f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state [0.078121s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_incorrect_hint [0.093267s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_snmp_get_failure [0.091229s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_set_failure [0.061740s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_local_gb_without_spacing [0.125097s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_144_ports_detail_get_member [0.222981s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-25c2e15b-b2d8-49a2-a2a3-fdc534780c54 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_timeout [0.074331s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on [0.048620s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_no_hints [0.117680s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_delay [0.068677s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_invalid_state [0.055033s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_one_matches [0.130159s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_snmp_get_failure [0.060516s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_145_ports_detail_get_observer [0.241845s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/ports/detail WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ba2928da-9f37-4e78-933b-5c50339bf11a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_set_failure [0.055517s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_root_device_skip_list [0.106936s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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 [0.063194s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_size_invalid [0.087523s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_reset [0.070548s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_size_string [0.096773s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_reset_delay_option [0.053201s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay [0.049089s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay_on_delay [0.055281s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.hooks.test_root_device.RootDeviceTestCase.test_zero_size [0.110714s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_146_ports_port_id_get_admin [0.371645s] ... 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-7d2819a2-e448-4b3b-af2e-c05c4008caad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_invalid_state [0.058369s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_get_failure [0.061988s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_agent.ContinueInspectionTestCase.test [0.130972s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_reset_off_snmp_set_failure [0.060287s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_timeout [0.054206s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_agent.ContinueInspectionTestCase.test_store_logs [0.145607s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_147_ports_port_id_get_member [0.246661s] ... 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-a2196c4e-d273-4607-bcd5-5c350446e8cb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_delay [0.065159s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareAbortTestCase.test_abort_error [0.075268s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_invalid_state [0.073295s] ... ok {1} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareAbortTestCase.test_abort_ok [0.077772s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_148_ports_port_id_get_observer [0.194989s] ... 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-98797b7e-8545-4b50-976c-f3887ef15d9c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect [0.140737s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_empty [0.131310s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_149_ports_port_id_patch_admin [0.262807s] ... 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-b9c9375c-5cef-4c2b-aee2-08a82ac9ac5c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_error [0.180335s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_150_ports_port_id_patch_member [0.283885s] ... 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-9e7cf846-ae4a-4fa2-ade1-8df411139443 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_get_failure [0.721948s] ... ok {1} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_invalid_input [0.252372s] ... ok 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_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_set_failure [0.050339s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_timeout [0.065151s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_error [0.043898s] ... ok {1} ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_more_socket [0.121964s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_151_ports_port_id_patch_observer [0.256383s] ... 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-ba3d81ee-e634-4cf2-9c42-ea058a0bc2d3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_off [0.063053s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_on [0.061998s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_snmp_failure [0.050433s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_power_state_default [0.226533s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_raritan_pdu2_snmp_objects [0.060638s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_152_ports_port_id_delete_admin [0.227809s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a4f2345d-bca8-48fb-b675-bc7dc5179f3c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_servertech_sentry3_snmp_objects [0.067683s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_servertech_sentry4_snmp_objects [0.089105s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_power_state_ipmi [0.205169s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_snmp_auto_cache_supports_pdu_replacement [0.063841s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_off [0.058876s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_153_ports_port_id_delete_member [0.269906s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-511b28ed-e5e7-4474-b8bb-1d210a42d976 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_on [0.062852s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_reset [0.043919s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_power_state_redfish [0.222477s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_off [0.090262s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_154_ports_port_id_delete_observer [0.177872s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8eafb4c0-aaa2-4064-8f60-0d614f523a42 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_properties [0.098346s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_155_nodes_ports_get_admin [0.077375s] ... 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-4b8ffb9c-1618-4bac-ad4b-bf43f83b256c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_on [0.103092s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_156_nodes_ports_get_member [0.074686s] ... 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-55c0aa85-24a0-4cca-9896-d5dec498085c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_snmp_objects [0.089266s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_power_on [0.194416s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_157_nodes_ports_get_observer [0.100444s] ... 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-153e2541-6273-46db-90e1-083bc779c1dc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_vertivgeist_pdu_snmp_objects [0.096023s] ... ok {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_power_on_timeout [0.096420s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_158_nodes_ports_detail_get_admin [0.078619s] ... 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-0b710c68-f566-4b3c-a7e8-d1b5bc2afca3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_159_nodes_ports_detail_get_member [0.071393s] ... 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-55c4f8a1-05d3-46bd-b3bd-2fc2f9900c0e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot [0.093569s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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_error [0.174698s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_160_nodes_ports_detail_get_observer [0.085247s] ... 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-03da11d2-64b8-4f7f-b1b1-c2fa117589e0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot_timeout [0.090837s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_161_portgroups_ports_get_admin [0.078333s] ... 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-28d26ff1-5d79-4ebc-80c3-f93d35cc992c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_off [0.158546s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_power.IRMCPowerTestCase.test_set_power_state [0.130176s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_162_portgroups_ports_get_member [0.073452s] ... 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-de1a7f25-4ed9-40db-bb90-50c8bcfdc81a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_on [0.126731s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_163_portgroups_ports_get_observer [0.083924s] ... 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-6a7c914e-b87f-4d54-9ca3-dbf0b1c9cd23 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state_timeout [0.133583s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_164_portgroups_ports_detail_get_admin [0.074908s] ... 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-f962e5fb-3b76-4c44-b4c7-fbdf2db9948a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_default [0.105869s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_165_portgroups_ports_detail_get_member [0.075203s] ... 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-dd959621-c4fb-4c46-ab5f-2197571952f1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_snmp_failure [0.165745s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_166_portgroups_ports_detail_get_observer [0.096358s] ... 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-cc2b7228-edfb-4378-a7ac-7c16d5173a03 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_fail_ipmi [0.103765s] ... ok {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_properties [0.134457s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_167_volume_get_admin [0.089591s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-998eb763-7a27-4149-986a-53e9df74a4b9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_fail_redfish [0.108435s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_168_volume_get_member [0.096758s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f6892ecc-8018-487f-84f3-8ae1ee1c606d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot [0.147364s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_power.IRMCPowerTestCase.test_validate_ipmi [0.153025s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_169_volume_get_observer [0.078400s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-de57c6ed-9ac2-4580-9427-7f13b951e7b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_170_volume_connectors_get_admin [0.104633s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2bea160d-3166-4b3a-98c6-148e36ff2923 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_error [0.176277s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_power.IRMCPowerTestCase.test_validate_redfish [0.170319s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_171_volume_connectors_get_member [0.104489s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e8eb3c0b-22a1-4682-a59c-c75f0e105767 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_snmp_failure [0.134151s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_cleaning_network [0.125953s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_172_volume_connectors_get_observer [0.097387s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-669b4585-1b8e-4ab5-bf8b-058ca614b116 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_timeout [0.090468s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_inspection_network [0.108349s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.083259s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_173_volume_connectors_post_admin [0.133175s] ... 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-9b7e24e8-ca5e-4c01-9f34-cee93001dee9 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_provisioning_network [0.101509s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.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( {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_174_volume_connectors_post_member [0.112473s] ... 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-df30a6c0-b353-48a3-a6ae-ff50ac8537b8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_error [0.094792s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_configure_tenant_networks [0.108313s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.095012s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_current_vif [0.095972s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.055553s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.055009s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_node_network_data [0.123273s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.043830s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-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.051753s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_properties [0.096739s] ... ok {2} ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_clean_and_deploy_step_all_args [0.030920s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_175_volume_connectors_post_observer [0.375284s] ... 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-92a2637e-e88d-463f-97ad-31f1ee8278ac X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_all_args [0.021110s] ... ok {2} ironic.tests.unit.drivers.test_base.DeployAndCleanStepDecoratorTestCase.test_deploy_and_clean_step_priority_only [0.020921s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_176_volume_volume_connector_id_get_admin [0.085500s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/aaf8c9e4-d0ce-435f-a508-1ee4aa3721be WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-adaa5978-017c-4c4c-a3e0-513aaa2d3451 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector aaf8c9e4-d0ce-435f-a508-1ee4aa3721be could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_default_interfaces [0.056306s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_port_changed [0.140416s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_drac.IDRACHardwareTestCase.test_override_with_inspector [0.046397s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_177_volume_volume_connector_id_get_member [0.096141s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/b4a70f56-69d6-4ca2-9f3f-6b99a6f78d41 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-eef19748-4b39-4b50-9e8b-0abdc5e340b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector b4a70f56-69d6-4ca2-9f3f-6b99a6f78d41 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_raid [0.083788s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_bios [0.047974s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_portgroup_changed [0.149663s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_178_volume_volume_connector_id_get_observer [0.113805s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/connectors/3feb1afb-0b94-475d-a645-ff7b37eb6295 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2bede2d5-4bde-4569-8f03-965480abb309 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 3feb1afb-0b94-475d-a645-ff7b37eb6295 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_inspect [0.057534s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_drac.IDRACHardwareTestCase.test_override_with_redfish_management_and_power [0.038269s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_cleaning_network [0.141302s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_drac.IDRACHardwareTestCase.test_override_with_redfish_raid [0.053546s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_179_volume_volume_connector_id_patch_admin [0.150057s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/48576f71-ea31-4bdb-9ec2-aca6a7a8c82c WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-618d5a18-3727-43b2-bd20-b02809359ce2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 48576f71-ea31-4bdb-9ec2-aca6a7a8c82c could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_vendor [0.088932s] ... ok 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.TestRBACScoped.test_scoped_canary_180_volume_volume_connector_id_patch_member [0.081477s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/4bafd6a7-c3ef-4473-bbab-dfe0dc19f011 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a4afab3b-ef6f-48e8-8db4-06a241c6d393 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 4bafd6a7-c3ef-4473-bbab-dfe0dc19f011 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_virtual_media_boot [0.061534s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_inspection_network [0.156567s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_ipmi.IPMIHardwareTestCase.test_default_interfaces [0.060807s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_181_volume_volume_connector_id_patch_observer [0.102079s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/connectors/a526f482-bbaf-4761-9f24-f7638bbf492e WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-56ba31cf-4719-4eed-a00f-69453a2cba9a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector a526f482-bbaf-4761-9f24-f7638bbf492e could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_agent_rescue [0.068918s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_provisioning_network [0.140385s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_182_volume_volume_connector_id_delete_admin [0.082903s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/884117f1-667c-4731-aad3-e1a3d9b7cd11 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a4ba0fc5-43e5-4a6d-8e1e-b2ca61f16c74 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 884117f1-667c-4731-aad3-e1a3d9b7cd11 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_cinder_storage [0.056016s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_183_volume_volume_connector_id_delete_member [0.078684s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/8ef6d588-b0c6-48b6-820f-13c9471a01a2 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-89542d01-3dc9-44a3-a446-808cab68393a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 8ef6d588-b0c6-48b6-820f-13c9471a01a2 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_noop_mgmt [0.061612s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_unconfigure_tenant_networks [0.136574s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_184_volume_volume_connector_id_delete_observer [0.065538s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/connectors/94ddc08e-3b57-4990-9107-34c075a171f1 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-79ed4143-17bd-4656-8647-26438b86092b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 94ddc08e-3b57-4990-9107-34c075a171f1 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_185_volume_targets_get_admin [0.084157s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4d05b989-70ee-4f26-887f-a657c66be503 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_shellinabox [0.120235s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_186_volume_targets_get_member [0.064165s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ecbdf5a9-81c2-4f43-8e31-7dd32438ca00 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_validate [0.213290s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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.114015s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_187_volume_targets_get_observer [0.079923s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-bd05b8f1-aae3-4369-a5c4-61c8859b8ce0 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs [0.053259s] ... ok {2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_IPA_command_fail [0.069695s] ... ok {2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_command_fail [0.073710s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_188_volume_targets_post_admin [0.240788s] ... 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-1fbb5cf1-1ac9-4fc5-9cea-5144a26099b1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_fs [0.067223s] ... ok {2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_swift [0.073169s] ... ok {2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_unkown [0.067994s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_189_volume_targets_post_member [0.221829s] ... 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-31ec7ee6-7f6c-4dbe-8b40-10a9c82b9c2d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_with_label [0.077979s] ... ok {2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_get_ramdisk_logs_file_name [0.065659s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_190_volume_targets_post_observer [0.155462s] ... 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-61b09033-06b5-4837-8c47-25923dd347fb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} {2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_local [0.081371s] ... ok {2} ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_swift [0.101861s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_attach [0.813914s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_191_volume_volume_target_id_get_admin [0.154576s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/0efb7035-903e-45a4-9fad-0817a2e55d14 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bd87368d-6400-49b0-b9c9-9b12dfb67927 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 0efb7035-903e-45a4-9fad-0817a2e55d14 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_create [0.079238s] ... ok {2} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_delete [0.071141s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_detach [0.149795s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_192_volume_volume_target_id_get_member [0.142515s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/c8fcd3b4-4f7d-4355-a13b-8b153b0b4296 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bc4c87e0-a9d0-4c19-9412-a2dac630f4c2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target c8fcd3b4-4f7d-4355-a13b-8b153b0b4296 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get [0.073164s] ... ok {2} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get_by_node_id [0.077150s] ... ok {1} ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_list [0.150607s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_193_volume_volume_target_id_get_observer [0.160295s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/volume/targets/1404c1c7-535f-4db1-9f36-88adeeb0324e WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b7592db4-5d4d-444a-b991-d82aeb3779c3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1404c1c7-535f-4db1-9f36-88adeeb0324e could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_create [0.089058s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_194_volume_volume_target_id_patch_admin [0.080157s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/007086a1-bae4-4032-9630-7a740a5e8938 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-82504baf-8114-45cd-aa3f-630fd2239df4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 007086a1-bae4-4032-9630-7a740a5e8938 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_delete [0.103616s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_195_volume_volume_target_id_patch_member [0.104316s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/7088b932-a23e-48ed-9249-4f3e8bab158d WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8a75fbbc-8995-4ce6-bdd7-67615608b25b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 7088b932-a23e-48ed-9249-4f3e8bab158d could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_save [0.078743s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_cleaning [0.258890s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_bios.TestBIOSSettingObject.test_save [0.088950s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_196_volume_volume_target_id_patch_observer [0.145306s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/volume/targets/4b71bb40-4e54-4c14-bc2a-993650a8aeb9 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-49aa8be5-6816-4b24-84e8-458826939e9d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 4b71bb40-4e54-4c14-bc2a-993650a8aeb9 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_create_and_update [0.085681s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_cleaning_failed [0.194161s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_bios.TestBIOSSettingObject.test_sync_node_setting_delete_nochange [0.117118s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_197_volume_volume_target_id_delete_admin [0.163943s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/8834f4e8-27c2-4e9f-a3eb-fd6deead436f GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2dbde1ff-84fc-4f5b-9494-ab06d39007de X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 8834f4e8-27c2-4e9f-a3eb-fd6deead436f could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test__repr__includes_default_function_name_and_source_hash [0.044311s] ... ok {2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_default_as_function [0.084655s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_198_volume_volume_target_id_delete_member [0.155279s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/60c20765-80e1-4c89-af85-d87d0ca70cf1 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0c52f2f3-108b-4c47-8bef-e70c00af340e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 60c20765-80e1-4c89-af85-d87d0ca70cf1 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_deploying [0.230691s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function [0.082725s] ... ok {2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function_invalid_type [0.062901s] ... ok {2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_invalid_type [0.021435s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_deploying_failed [0.165307s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_string [0.054084s] ... ok {2} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_create [0.055514s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_199_volume_volume_target_id_delete_observer [0.271818s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/volume/targets/a19575b6-d9bc-4c70-873d-9cb6de12435d GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-29e54194-6377-4c46-bf3c-973d7ae10233 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target a19575b6-d9bc-4c70-873d-9cb6de12435d could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_get_firmware_component [0.051256s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_cleaning [0.160481s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_get_firmware_component_does_not_exist [0.060040s] ... ok {2} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_get_firmware_component_node_does_not_exist [0.053684s] ... ok {2} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_save [0.028878s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_200_nodes_volume_get_admin [0.172887s] ... 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-981b1064-cea8-46fb-a794-a4e5e6cc9352 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_sync_firmware_components_create_and_update [0.036865s] ... ok {2} ironic.tests.unit.objects.test_firmware.TestFirmwareComponentObject.test_sync_firmware_components_nochange [0.037337s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_missing [0.037279s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_set [0.025031s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_missing [0.023617s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_201_nodes_volume_get_member [0.164692s] ... 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-9c830ac1-af70-4ae5-addd-0ad293c71737 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_deploying [0.277151s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_default [0.048675s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_non_default [0.042185s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_remove [0.025251s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_missing [0.019580s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_set [0.020488s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_202_nodes_volume_get_observer [0.154565s] ... 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-2a1f4957-4327-41fd-94c2-1533792f09db X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_missing [0.064135s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_step_pre_reboot_fast_track [0.293830s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_203_nodes_volume_connectors_get_admin [0.192104s] ... 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-7858beb5-d69f-4a8e-80d0-757390b734a4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_204_nodes_volume_connectors_get_member [0.156157s] ... 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-da4754b6-b2d2-4ec9-b9f7-ed284c3afcae X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_apply_time_immediate [0.209585s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_default [0.454451s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_205_nodes_volume_connectors_get_observer [0.196547s] ... 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-7240d46a-5ba7-4952-bc17-36802adb0154 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_no_remove_non_default [0.070234s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_apply_time_on_reset [0.196102s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_unsupported_set_remove [0.054033s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_missing [0.049072s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_206_nodes_volume_targets_get_admin [0.151605s] ... 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-1e4a9b1b-32bc-49c6-8add-b299f3b1492e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_fail [0.145928s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_set [0.064523s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_missing [0.033086s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_default [0.022075s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_non_default [0.019862s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_remove [0.019866s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_supported_missing [0.033166s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_207_nodes_volume_targets_get_member [0.160079s] ... 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-a6a00de3-e09a-45b5-b4d6-8b5aed74126c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_supported_set [0.029639s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_missing [0.029546s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_no_apply_time_attr [0.203693s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_no_remove_default [0.039761s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_no_remove_non_default [0.051707s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_208_nodes_volume_targets_get_observer [0.164784s] ... 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-08da763e-d072-4eb9-a9e6-03f9f90f22ee X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_remove [0.053682s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_set [0.029031s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_unset [0.021021s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set [0.024931s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_no_supported_apply_times [0.211970s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set_no_remove [0.039842s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_209_drivers_get_admin [0.171472s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-3bf7bbee-6d1e-4511-a018-d28ad7ddf521 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_unset [0.042354s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_missing [0.036147s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_supported_set [0.071023s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_configuration_not_supported [0.196244s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_210_drivers_get_member [0.147842s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-e30bb9ba-5066-40bd-a554-6fd1656d5453 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_missing [0.056651s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_default [0.046699s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_no_remove_non_default [0.056610s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_211_drivers_get_observer [0.148879s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-f4616939-3b94-4f48-b47d-716e957f4b1e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_description_unsupported_set_remove [0.056791s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings [0.246934s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_missing [0.046558s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_212_drivers_driver_name_get_admin [0.102084s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-da363fb2-57ef-4f09-8db2-e30374189bd5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_untouched [0.052368s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_missing [0.044992s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_213_drivers_driver_name_get_member [0.085657s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-05eab41a-d123-4b37-b1f7-d9ec736727f2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove [0.051334s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove_in_maintenance [0.057217s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_214_drivers_driver_name_get_observer [0.107588s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-22766ef8-9306-468d-bfdd-f2ee983f7d7f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_no_bios [0.244357s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_supported_missing [0.044672s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_supported_set [0.059812s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_215_drivers_properties_get_admin [0.086186s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-35c4c96a-6525-42e6-b339-b8dc7a6b3b4b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_unsupported_missing [0.054587s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_unsupported_set_no_remove_default [0.057691s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_216_drivers_properties_get_member [0.117442s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-6f1f3620-24d3-4ef5-b0da-385e27b591cf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_unsupported_set_no_remove_non_default [0.060595s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings_noop [0.254544s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_firmware_unsupported_set_remove [0.055362s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_217_drivers_properties_get_observer [0.123855s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/drivers/fake-driverz/properties WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-20bf6712-1bb8-4bb1-bc7c-8f28a83ccfd5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_supported_missing [0.062815s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_supported_set [0.063966s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_check_bios_attrs [0.193406s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_missing [0.045683s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_no_remove_default [0.048344s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_no_remove_non_default [0.060590s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_fail [0.130427s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_set_remove [0.063975s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_missing [0.051254s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_218_drivers_raid_logical_disk_properties_get_admin [0.449809s] ... 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-78c8d7f9-66c0-40cb-afa9-6a5721689513 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_not_supported [0.167584s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_set [0.082191s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_219_drivers_raid_logical_disk_properties_get_member [0.099640s] ... 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-edf0232a-42fb-4898-97e9-27d41675300b X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_missing [0.125908s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_post_reboot_cleaning [0.199698s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_default [0.086579s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_220_drivers_raid_logical_disk_properties_get_observer [0.142723s] ... 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-62a751df-e685-4cfb-ab6f-e98f8284ff22 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get_raid_logical_disk_properties\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_no_remove_non_default [0.088792s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_set_remove [0.094522s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_221_drivers_vendor_passthru_methods_get_admin [0.190938s] ... 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-56440a2e-7f65-4a8a-8aad-834a8aed6acb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_missing [0.038072s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_set [0.078724s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_222_drivers_vendor_passthru_methods_get_member [0.139947s] ... 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-ab018a8f-ba94-4ac6-a2ae-8fa87b360596 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_missing [0.080718s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_post_reboot_deploying [0.430388s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_223_drivers_vendor_passthru_methods_get_observer [0.109185s] ... 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-492872a9-4c47-4a41-8ea4-3dcc056e083f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_no_remove_non_default [0.096084s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_224_drivers_vendor_passthru_get_admin [0.085897s] ... 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-a6789e0d-b03b-4fc0-806c-90d66007244c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_set_remove [0.104724s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_missing [0.079181s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_set [0.066700s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_225_drivers_vendor_passthru_get_member [0.197172s] ... 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-17067c57-689d-454f-aa99-b7675db550cc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_cleaning [0.375809s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_missing [0.057840s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_default [0.036211s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_non_default [0.032257s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_remove [0.043997s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_supported_missing [0.033788s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_supported_set [0.027822s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_226_drivers_vendor_passthru_get_observer [0.224072s] ... 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-7da088b4-da51-41e1-a4fe-e8857c8a1fb5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_missing [0.047672s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_deploying [0.237141s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_set_no_remove_non_default [0.046935s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_set_remove [0.061373s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_default [0.053120s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_non_default [0.025981s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_missing [0.025751s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_fast_track [0.210457s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_set [0.027429s] ... ok {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing [0.044144s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_227_drivers_vendor_passthru_post_admin [0.319200s] ... 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-0287637c-d267-42b8-9ef0-b5adddb81c52 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {2} ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing_remove [0.046215s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_get_properties [0.154125s] ... ok {2} ironic.tests.unit.objects.test_objects.TestObjectVersions.test_object_version_check [0.051663s] ... ok {2} ironic.tests.unit.pxe_filter.test_service.TestSync.test_no_nodes [0.029708s] ... ok {2} ironic.tests.unit.pxe_filter.test_service.TestSync.test_no_nodes_with_discovery [0.040582s] ... ok {2} ironic.tests.unit.pxe_filter.test_service.TestSync.test_nothing_on_inspection [0.096707s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_228_drivers_vendor_passthru_post_member [0.320619s] ... 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-e3d4184a-72ea-4664-91b8-19c74d37df6d X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_post_configuration [0.292200s] ... ok {2} ironic.tests.unit.pxe_filter.test_service.TestSync.test_sync [0.142486s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_validate [0.079401s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_event_service [0.071466s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_229_drivers_vendor_passthru_post_observer [0.234799s] ... 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-e4343e11-297b-48b3-a42a-a4510f7c9836 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_event_service_error [0.071818s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_collection [0.072121s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_230_drivers_vendor_passthru_put_admin [0.155699s] ... 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-54f2b484-d2b1-46f0-9be5-18328f540980 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_collection_error [0.076519s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_231_drivers_vendor_passthru_put_member [0.214652s] ... 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-277d312e-9976-4ea6-80e8-ec4328670f7f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_232_drivers_vendor_passthru_put_observer [0.183167s] ... 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-056c23b5-a955-4c5d-b560-f8a191da8a60 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_233_drivers_vendor_passthru_delete_admin ... SKIPPED: not updated for scope testing {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_234_drivers_vendor_passthru_delete_observer ... SKIPPED: not updated for scope testing {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_task_monitor [0.795033s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_task_monitor_error [0.128205s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_235_nodes_bios_get_admin [0.236385s] ... 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-c5b28d4d-f2ca-4518-b142-ca2bc8902243 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_update_service [0.075774s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_update_service_error [0.081195s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info [0.094573s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_236_nodes_bios_get_member [0.248653s] ... 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-b5a357b3-2839-4c66-a82d-ad4fc02b9821 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme [0.101091s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_ipv6_brackets_added [0.093546s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_237_nodes_bios_get_observer [0.256922s] ... 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-e9590860-4a1d-4475-a5c4-0e20b4dc98f5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_with_port [0.112432s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_address [0.090651s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_auth_type [0.124657s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_238_nodes_bios_bios_setting_get_admin [0.301948s] ... 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-b2b3052b-d263-4a28-aa9a-09dcbcf49459 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca [0.088843s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_system_id [0.083404s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca [0.092704s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_239_nodes_bios_bios_setting_get_member [0.222804s] ... 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-ed986bd3-646d-45f7-a240-a0e71b470846 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_info [0.068545s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_system_id [0.087788s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_path_verify_ca [0.081030s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_240_nodes_bios_bios_setting_get_observer [0.218144s] ... 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-2a8d0f0f-0836-4c1b-b5b3-e3815637720c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_auth_type [0.088721s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_capath [0.083787s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_241_conductors_get_admin [0.204280s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d68913b7-4e4d-49f1-b661-205d87a53a26 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca [0.080757s] ... ok {1} ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_with_root_prefix [0.085228s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_242_conductors_get_member [0.229753s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a30f5f60-1191-414c-a3f8-49895f7b4cbc X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_should_write_image [0.214959s] ... ok 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.TestRBACScoped.test_scoped_canary_243_conductors_get_observer [0.199957s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-06d6b1c8-dba4-4f67-b85c-77532456ac76 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled [0.148349s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_244_conductors_hostname_get_admin [0.201418s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fc73e8a0-fbcb-4f0b-a0e6-f21bdc0055ba X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size [0.141835s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.123641s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_245_conductors_hostname_get_member [0.195336s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3a03d7d0-4345-4ef1-b4d0-8ccd3bc5ccd2 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail_by_agent_consumed_memory [0.129926s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_246_conductors_hostname_get_observer [0.193526s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/conductors/test-conductor-node WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-74014f3f-723f-42d5-999a-fed181f52000 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_disabled [0.124166s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled [0.091393s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_247_allocations_post_admin [0.184399s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-77628024-e9ed-48ae-aab3-d87e1be9e4b4 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled_format_qcow2 [0.123968s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled_format_raw [0.133484s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.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. {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_without_memory_mb [0.114652s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_http_image [0.066509s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_249_allocations_post_observer [0.186850s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/allocations WITH {'resource_class': 'CUSTOM_TEST'} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c0300009-3a23-4042-b7f6-a6393af50796 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_invalid_image_download_source [0.086925s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_invalid_image_download_source2 [0.095644s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_250_allocations_get_admin [0.222904s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e88a16b1-2691-4850-be8f-235f26b3d492 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args [0.091135s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_file [0.147473s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_local_http [0.056081s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_local_via_node [0.051790s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_251_allocations_get_member [0.314741s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c7c2935f-b55a-49b4-9aad-268c371262d8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_not_http [0.034490s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue [0.050232s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_bad_command_result [0.087410s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_252_allocations_get_observer [0.186044s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c34ec9b6-4ba2-4adc-9965-322562104872 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_exc [0.071028s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_missing_command_result [0.088941s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_with_smartnic_port [0.072262s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.StepMethodsTestCase.test_agent_get_steps [0.070872s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_253_allocations_allocation_id_get_admin [0.286971s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/951a8d4e-1c7c-4350-a362-dfdb1ce87aa6 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-152d2f50-ac47-49de-859f-e0e77357104e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 951a8d4e-1c7c-4350-a362-dfdb1ce87aa6 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_agent_get_steps_deploy [0.070714s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.StepMethodsTestCase.test_execute_clean_step [0.048367s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.StepMethodsTestCase.test_execute_clean_step_running [0.054305s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_254_allocations_allocation_id_get_member [0.181188s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/55859ef0-2636-4148-9053-c7a9e255afdf WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-efbeb32d-a877-4d21-bbb6-0a2336c02004 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 55859ef0-2636-4148-9053-c7a9e255afdf could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_execute_clean_step_version_mismatch [0.062378s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.StepMethodsTestCase.test_execute_deploy_step [0.059685s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.StepMethodsTestCase.test_execute_service_step [0.080679s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.StepMethodsTestCase.test_find_step [0.055699s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_255_allocations_allocation_id_get_observer [0.298844s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/allocations/16ccb1ac-ef82-4a35-a61a-4a6e4a023b23 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b2d0450c-503d-49ba-9024-d57b3b836212 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 16ccb1ac-ef82-4a35-a61a-4a6e4a023b23 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_find_step_not_found [0.069608s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.StepMethodsTestCase.test_get_deploy_steps [0.065975s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.StepMethodsTestCase.test_get_deploy_steps_only_oob [0.053076s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.StepMethodsTestCase.test_get_steps_custom_interface [0.072375s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_256_allocations_allocation_id_patch_admin [0.285315s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/fbffeac1-447a-4a3c-8dab-4acd57a3a32e WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-382669fc-b2f3-4dcf-8d99-95d4ccf4f312 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation fbffeac1-447a-4a3c-8dab-4acd57a3a32e could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_missing_steps [0.138378s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.StepMethodsTestCase.test_get_steps_override_priorities [0.108209s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_257_allocations_allocation_id_patch_member [0.206021s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/f9dcce4a-4748-43b7-abb6-6f1963a34df2 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-00d9b910-4110-4a83-9c4e-577776d37447 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation f9dcce4a-4748-43b7-abb6-6f1963a34df2 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_agent_base.StepMethodsTestCase.test_get_steps_override_priorities_none [0.172228s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_basics [0.081055s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_258_allocations_allocation_id_patch_observer [0.249492s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/allocations/5c55ef9f-7bb6-4d20-88ce-46b5a1f14482 WITH [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-711c7b63-c69b-4aea-b267-ec655d660799 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 5c55ef9f-7bb6-4d20-88ce-46b5a1f14482 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_get_power_state [0.085402s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_get_power_state_unknown [0.053182s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_259_allocations_allocation_id_delete_admin [0.200980s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/edbd854c-302a-4758-84d2-9367a0243a94 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-02f7bbe9-db33-44e6-b250-58c747c17cfd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation edbd854c-302a-4758-84d2-9367a0243a94 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot [0.162311s] ... ok 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.TestRBACScoped.test_scoped_canary_260_allocations_allocation_id_delete_member [0.150250s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/0f63c380-0f44-461a-87e9-6926fd0b03ad GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-cd81a888-2158-4d3c-b81b-2e3a80759563 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation 0f63c380-0f44-461a-87e9-6926fd0b03ad could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_another_state [0.100666s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_261_allocations_allocation_id_delete_observer [0.148444s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/allocations/e5ab74ee-5d24-449b-ad8b-d8981c4328f7 GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b46e13e1-20ef-4ee0-82d3-a9d422f89326 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Allocation e5ab74ee-5d24-449b-ad8b-d8981c4328f7 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_into_instance [0.121109s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot_timeout [0.157318s] ... ok 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.TestRBACScoped.test_scoped_canary_262_nodes_allocation_get_admin [0.186317s] ... 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-87f08588-07ac-45ed-ad84-f2b4f784581c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate [0.067102s] ... ok {1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate_fails [0.090867s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_263_nodes_allocation_get_member [0.167505s] ... 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-69e04d06-e737-41fa-8fd4-42e63d3cd9dd X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate_no_fast_track [0.063942s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists [0.066025s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_264_nodes_allocation_get_observer [0.138517s] ... 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-b99d7ad4-ef75-4a5e-9bc7-00d19f31b9d6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists_fail [0.079759s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_265_nodes_allocation_delete_admin [0.149718s] ... 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-b3ebce38-a0ee-457b-bdbe-905575ce0285 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_266_nodes_allocation_delete_member [0.207270s] ... 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-cf1ce689-0227-4cb8-9c7c-4c1da2868bb6 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_267_nodes_allocation_delete_observer [0.251832s] ... 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-9f0c8acc-f548-49a5-8d4f-ac0a0804076c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 22e26c0b-03f2-4d2e-ae87-c02d7f33c000 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid [0.647718s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir [0.047439s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir_tempdir [0.046846s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_268_deploy_templates_post_admin [0.186884s] ... 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-0e653d5b-d7ff-44ee-992c-039f8d1d4d0f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file [0.062191s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file_not_found [0.059321s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_not_a_num [0.057889s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console [0.079526s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_exception [0.069704s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_269_deploy_templates_post_member [0.899774s] ... 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-6786fba6-6e89-4c92-9647-8bae05864b16 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_270_deploy_templates_post_observer [0.205073s] ... 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-a895a367-484f-4b91-aaa5-a8d863c1219e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_forced_kill [0.871419s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_nopid [0.055846s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_271_deploy_templates_get_admin [0.215990s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7c349006-3081-4a81-9d4a-8c54b3409254 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_shellinabox_not_running [0.080787s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_default [0.130182s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_272_deploy_templates_get_member [0.185895s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c33f04fd-55e4-42d0-98de-fed3f95e8b54 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_hostname [0.157002s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_273_deploy_templates_get_observer [0.207652s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e362cf86-e7d9-492a-ae55-595b6f9dce72 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_ipv4 [0.161982s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_274_deploy_templates_deploy_template_id_get_admin [0.148074s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/17b79681-c450-484a-b253-b18b98ce6c90 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-62de387d-1ef2-46cb-838f-569ff953b3d5 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_ipv6 [0.178382s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_no_free_ports [0.045260s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_275_deploy_templates_deploy_template_id_get_member [0.168567s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/e80a392f-032d-4d7f-aec7-3604a4f87002 WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ef2bacc7-6940-4dd6-8e67-732b18537e3c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_range_retry [0.040512s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_success [0.028390s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_https_url [0.027966s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_url [0.021035s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp [0.032213s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp6 [0.041981s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp_with_address_conf [0.052873s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_invalid_console_port_range [0.055758s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_276_deploy_templates_deploy_template_id_get_observer [0.283081s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/deploy_templates/fed6f4d2-d81a-44b7-99b6-e70ca8c7bb9f WITH {} GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ece1f9e5-cf08-4621-a680-602ca1df0799 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:get\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file [0.051236s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file_fail [0.053684s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console [0.084308s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail [0.052270s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_no_pid [0.051202s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_277_deploy_templates_deploy_template_id_patch_admin [0.279781s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/b522eb26-1391-431e-ba6e-3b354c956639 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c3c699d2-6e68-4bb8-9840-b165ddd0e161 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_nopiddir [0.059567s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_nopid [0.091552s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_278_deploy_templates_deploy_template_id_patch_member [0.190557s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/79f4d41f-ddb9-4197-9f8c-9838aab2ba1c WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-495676ff-17ab-4db2-b834-56ace2c9c826 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_timeout [0.090573s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_279_deploy_templates_deploy_template_id_patch_observer [0.120905s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ PATCH /v1/deploy_templates/7c9c5362-d9fe-4453-8e4a-77e45d4b48b8 WITH [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6af96010-ce65-4ae8-a6f0-527bab5a8b09 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:update\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console [0.078253s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_default_ipv4 [0.090604s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_280_deploy_templates_deploy_template_id_delete_admin [0.105032s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/3a5c797d-5205-4ee1-ae98-11903d2156c5 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c79a272b-0c9f-4735-bd4c-05185d3108eb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_ipv4 [0.087306s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_281_deploy_templates_deploy_template_id_delete_member [0.079857s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/865a28b1-b8a5-4f79-a892-6744867d5dc7 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4ed2e992-b746-4504-851d-55ba2fa1f533 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_282_deploy_templates_deploy_template_id_delete_observer [0.096461s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ DELETE /v1/deploy_templates/7ec0d365-00c4-42fb-9dc8-57569015fa72 GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7924aab1-c686-4434-91d7-0b2730e789bf X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_default_timeout [0.122401s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_283_chassis_post_admin [0.095025s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-b137a974-a6f7-4253-81e4-23ccfffe6577 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout [0.135647s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_284_chassis_post_member [0.122556s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-77b592f9-846d-4bfa-9306-b6fb9081f044 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout_disabled [0.152034s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail [0.099615s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_285_chassis_post_observer [0.219205s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ POST /v1/chassis WITH {'description': 'test-chassis'} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-bbfbdb38-d105-47b6-bd4e-126992e346de X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail_nopiddir [0.146931s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_286_chassis_get_admin [0.159642s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-5c9bb8ab-6654-44c3-87f8-a9cda990546e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_287_chassis_get_member [0.138195s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-7dd8ea57-b532-4ecc-8d29-206cb6545366 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_nopid [0.182231s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console [0.097117s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_288_chassis_get_observer [0.145203s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-29c54df1-5338-4fa0-bc5f-615ec0543226 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console_fail_nopid [0.054750s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_289_chassis_detail_get_admin [0.084185s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-20fe0079-b115-44ff-ac9a-09d679e23303 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console [0.062668s] ... ok {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console_fail_nopid [0.077004s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_290_chassis_detail_get_member [0.104727s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-c5840308-adfe-43f3-ac6d-0b9210dd235e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_valid_console_port_range [0.064680s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_291_chassis_detail_get_observer [0.079138s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/chassis/detail WITH {} GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-a6194e0e-5d9f-4cee-988c-ca1c3c313a45 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_292_chassis_chassis_id_get_admin [0.078748s] ... 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-3b8884b5-867f-4874-a29b-93e2b88cd252 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_agent_add_clean_params [0.122849s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_build_agent_options_conf [0.081172s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_293_chassis_chassis_id_get_member [0.088553s] ... 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-61f2a422-9835-45c8-bb34-0676a375654f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_294_chassis_chassis_id_get_observer [0.085188s] ... 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-a96b7785-c048-4aaf-8d94-7cac4d74b9ad X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"(role:reader and system_scope:all) or (role:service and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_keystone [0.111903s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_295_chassis_chassis_id_patch_admin [0.081448s] ... 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-e462f2b7-8d00-4478-91f2-9f608d016048 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_force_raw [0.090238s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_296_chassis_chassis_id_patch_member [0.071688s] ... 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-299ea371-2f52-415f-ac69-ffff8cd4590a X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_stream [0.099916s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_297_chassis_chassis_id_patch_observer [0.106458s] ... 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-b456e571-5196-4c7c-8517-371faa46c73c X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:update\\\": \\\"(role:member and system_scope:all) or rule:service_role\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_298_chassis_chassis_id_delete_admin [0.127915s] ... 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-34b92460-13ab-49b9-a9e0-09f7a78d2606 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_299_chassis_chassis_id_delete_member [0.150546s] ... 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-e7b3e73e-dd21-4053-8ddd-35a1020759f1 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_300_chassis_chassis_id_delete_observer [0.163868s] ... 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-bedafa33-a5c4-4439-ac65-6a728b7cbc98 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_301_node_history_get_admin [0.156511s] ... 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-9f434729-f006-431c-80e3-7f189e4ef61e X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_partition [0.702937s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_302_node_history_get_member [0.110252s] ... 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-416f9070-917b-49e7-8e36-05f2aacab7e8 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_true [0.119614s] ... ok {0} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_303_node_history_get_observer [0.181260s] ... 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-bda60ad9-1573-4c40-a558-53838360d85f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning [0.168871s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_304_node_history_get_entry_admin [0.185134s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/a2976a4a-3470-43e7-b095-e1e43a18d770 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b2572b1d-8c85-4864-9647-76d792f141f3 X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_broken_fast_track [0.186223s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_305_node_history_get_entry_member [0.175620s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/fe46597f-cd2d-4953-96cb-1445ad977be3 WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-89726f5a-2451-42a8-8eaa-1e4b553c106f X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_fast_track [0.194991s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRBACScoped.test_scoped_canary_306_node_history_get_entry_observer [0.250363s] ... ok Captured stdout: ~~~~~~~~~~~~~~~~ GET /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/4403b5cf-e52f-4912-9106-ebc4bcc1b8bd WITH {} GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-86b42264-ff0e-46c4-b0db-dc6f70883ffb X-Openstack-Ironic-Api-Maximum-Version: 1.98 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.98 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_manage_boot_false [0.218446s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_args.ValidateDictTest.test_dict_valid [0.129228s] ... ok {0} ironic.tests.unit.common.test_args.ValidateDictTest.test_dict_valid_colon_key_name [0.081183s] ... ok {0} ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema [0.122377s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_service [0.286792s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_args.ValidateSchemaTest.test_schema_needs_args [0.102887s] ... ok {0} ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_kwargs [0.111864s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning [0.212683s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_args.ValidateSchemaTest.test_schema_needs_mixed [0.072678s] ... ok {0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum [0.073480s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_cleaning_error [0.161804s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_glance [0.073445s] ... ok {0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_http_url [0.097143s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_disable_power_off [0.194094s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_https_url [0.071527s] ... ok {0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_not_allowed [0.053510s] ... ok {0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_sha256 [0.037345s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_disable_power_off_and_fast_track [0.104428s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_image_checksum_sha512 [0.075960s] ... ok {0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_get_checksum_and_algo_no_checksum_file_url [0.066789s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_fast_track [0.190453s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_checksum_utils.IronicChecksumUtilsTestCase.test_is_checksum_url [0.077631s] ... ok {0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_is_checksum_url_file [0.036307s] ... ok {0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_is_checksum_url_string [0.040545s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_manage_boot_false [0.098264s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_checksum_utils.IronicChecksumUtilsTestCase.test_validate_text_checksum [0.050829s] ... ok {0} ironic.tests.unit.common.test_checksum_utils.IronicChecksumUtilsTestCase.test_validate_text_checksum_invalid [0.045610s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_service [0.132838s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_cinder.TestCinderActions.test_attach_volumes [0.151491s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_service_disable_power_off [0.206836s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_cinder.TestCinderActions.test_attach_volumes_attach_record_failure [0.158897s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_service_service_error [0.137588s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_get_async_step_return_state_cleaning [0.082746s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_deploying [0.063202s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_cleaning_set_all [0.076311s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_cleaning_set_one [0.083963s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_clears_non_pregenerated_token [0.077146s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_set_meta_failure [0.568910s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.075932s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_set_async_step_flags_deploying_set_all [0.101249s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_conn_init_failure [0.116196s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_deploying_set_one [0.101621s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_initialize_connection_failure [0.126051s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.GetPxeBootConfigTestCase.test_get_ipxe_boot_bios [0.071447s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_fallback [0.068376s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_one_attached [0.133115s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_fallback_bios [0.051045s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_other_arch [0.068277s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_reserve_failure [0.114784s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_uefi [0.045136s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_uefi [0.048708s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_vol_not_found [0.093916s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.GetPxeBootConfigTestCase.test_get_ipxe_config_template [0.101733s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes [0.197449s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.GetPxeBootConfigTestCase.test_get_ipxe_config_template_none [0.103700s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_none_bios [0.109457s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_begin_detaching_failure [0.175591s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.GetPxeBootConfigTestCase.test_get_ipxe_config_template_override_pxe_fallback [0.070446s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_bios_without_by_arch [0.048007s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_conn_init_failure_bad_request [0.092361s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_in_by_arch [0.062593s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_not_in_by_arch [0.063703s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_allowed [0.135927s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property [0.058173s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property_bios_default [0.047574s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_not_allowed [0.102959s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.GetPxeBootConfigTestCase.test_get_pxe_boot_file_uefi_without_by_arch [0.035116s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_bios_without_by_arch [0.045260s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_meta_failure_errors_not_allowed [0.090949s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_in_by_arch [0.061105s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_one_detached [0.111195s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_not_in_by_arch [0.055041s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property [0.046022s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_term_failure [0.104378s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property_bios [0.050329s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_per_node [0.064229s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_vol_not_found [0.096373s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.GetPxeBootConfigTestCase.test_get_pxe_config_template_uefi_without_by_arch [0.042740s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images [0.084531s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_checksum [0.086561s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_fail [0.071855s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_with_auth [0.094071s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_anaconda_deploy [0.069947s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_default_value [0.097615s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_fail [0.086720s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_keystone [0.086931s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_none [0.087095s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_anaconda_deploy [0.075587s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_anaconda_deploy_false [0.066834s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_software_raid [0.076159s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_is_software_raid_false [0.055067s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state [0.326660s] ... ok 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.common.test_cinder.TestCinderClient.test__get_cinder_session [1.926523s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs [0.750865s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_never [0.159209s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_overide [0.114012s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_no_poweroff [0.309517s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_all_supported_capabilities [0.045780s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label [0.062560s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_nothing_set [0.052191s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_nothing_set_bios_mode [0.039427s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label_uefi_mode [0.048546s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_false [0.046167s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_invalid [0.049527s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_true [0.044961s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities [0.053577s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities_string [0.043929s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_invalid_type [0.080760s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability [0.058432s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info [0.036747s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info_with_exc [0.051764s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_with_exc [0.046664s] ... ok {0} ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_cinder_client_with_context [1.789918s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_already_raw [0.149677s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_exception.TestIronicException.test___init___invalid_kwarg [0.049572s] ... ok {0} ironic.tests.unit.common.test_exception.TestIronicException.test___init___invalid_kwarg_reraise [0.053897s] ... ok {0} ironic.tests.unit.common.test_exception.TestIronicException.test___init___json_serializable [0.057757s] ... ok {0} ironic.tests.unit.common.test_exception.TestIronicException.test___init___string_serializable [0.040014s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_already_raw_keeps_md5 [0.160340s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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__validate_target_state [0.040666s] ... ok {0} ironic.tests.unit.common.test_fsm.FSMTest.test_initialize [0.033272s] ... ok {0} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable [0.040576s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_file_image [0.109735s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_is_stable_invalid_state [0.037167s] ... ok {0} ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_not [0.036764s] ... ok {0} ironic.tests.unit.common.test_fsm.FSMTest.test_process_event [0.040741s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw [0.125876s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.049080s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_allow_access_via_auth_token_enabled [0.038002s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_allow_admin_if_config_enabled [0.047149s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw_drops_md5 [0.143675s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestIsImageAvailable.test_allow_community_image [0.060219s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_allow_private_image_owned_by_conductor [0.031328s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_allow_public_image [0.036941s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image [0.118408s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestIsImageAvailable.test_allow_shared_image_if_member [0.045930s] ... ok {0} ironic.tests.unit.common.test_glance_service.TestIsImageAvailable.test_deny_private_image_different_owner [0.042638s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_false_connerror [0.040281s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_already_raw [0.115104s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.HttpImageServiceTestCase.test_download_fail_verify_false_ioerror [0.044416s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_true_ioerror [0.063121s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_via_dinfo [0.132114s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.HttpImageServiceTestCase.test_download_fail_verify_true_oserror [0.058023s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_custom_timeout [0.053200s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_http_scheme [0.046679s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_via_iinfo [0.117593s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.HttpImageServiceTestCase.test_download_success_verify_false [0.056928s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_false_basic_auth_failed [0.055152s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_md5_not_permitted [0.152780s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.HttpImageServiceTestCase.test_download_success_verify_false_basic_auth_sucess [0.079457s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_path [0.063520s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_true [0.044801s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_no_force_raw [0.161610s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.HttpImageServiceTestCase.test_download_success_verify_true_connerror [0.066379s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_gen_auth_from_conf_user_pass_none [0.038036s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_gen_auth_from_conf_user_pass_success [0.035938s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_remote_checksum_image [0.116584s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.HttpImageServiceTestCase.test_get_handles_exceptions [0.058959s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_get_success [0.048904s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_remote_checksum_sha256 [0.129092s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.HttpImageServiceTestCase.test_get_success_verify_false [0.056251s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_ansi_c [0.043010s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_cache_allowed [0.043670s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_remote_checksum_sha512 [0.114268s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.HttpImageServiceTestCase.test_show_cache_disabled [0.054762s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_no_content_length [0.041284s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_822 [0.063758s] ... ok {1} ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_remote_image_via_http_verified [0.149901s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.HttpImageServiceTestCase.test_show_rfc_850 [0.056277s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image [0.041522s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_custom_timeout [0.037036s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_disable_validation [0.038559s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_with_secret_parameter [0.052429s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_large_url [0.047863s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_http_scheme [0.064661s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_path_forbidden [0.045769s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_linkfail [0.072200s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_path_redirected [0.039078s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_raises_memory_guard [0.033837s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_valid_path_invalid_basic_auth [0.038135s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_both_master_and_dest_out_of_date [0.047798s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_valid_path_valid_basic_auth [0.040867s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate [0.047568s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_connect_error [0.042509s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate_no_force_raw [0.054862s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_error [0.046308s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_false [0.042591s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_false_error [0.045965s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_os_error [0.038956s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_true [0.062135s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_true_error [0.073123s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_valid_path [0.057974s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format [0.065148s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_out_of_date [0.465973s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_empty_password [0.062938s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_master_out_of_date [0.036901s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir [0.026509s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir_disable_validation [0.023609s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_empty_user [0.100034s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir_memory_low [0.028952s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid [0.037139s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid_no_force_raw [0.021886s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_none_password [0.057731s] ... ok {1} ironic.tests.unit.drivers.modules.test_image_utils.IloImageHandlerTestCase.test_ilo_kernel_param_config [0.027186s] ... ok {0} ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_verify_basic_auth_cred_format_none_user [0.039222s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_localhost_as_url_ignored [0.024952s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_localhost_ignored [0.032623s] ... ok {0} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_file_image_service [0.047651s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_normal_ip [0.045344s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_normal_ip_as_url [0.032259s] ... ok {0} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service [0.069679s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_normal_ipv6_as_url [0.047987s] ... ok {0} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service_url [0.074141s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_redfish_bmc_address_ipv6_brackets_no_scheme [0.051096s] ... ok {0} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_http_image_service [0.055679s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_resolved_host [0.066255s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.GetBMCAddressesTestCase.test_resolved_host_in_url [0.045835s] ... ok {0} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_https_image_service [0.070936s] ... ok {0} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_auth_override [0.060880s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.RunInspectionHooksTestCase.test_no_on_error [0.093824s] ... ok {0} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_auth_override_no_data [0.046540s] ... ok {0} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_auth_override_no_user_auth [0.043424s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.RunInspectionHooksTestCase.test_post_hook_on_error_callback [0.095725s] ... ok {0} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_invalid_image_ref [0.070074s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.RunInspectionHooksTestCase.test_pre_hook_on_error_callback [0.077114s] ... ok {0} ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_oci_url [0.078827s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.SwiftCleanUp.test_clean_up_swift_entries [0.058893s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ServiceGetterTestCase.test_is_container_registry_url [0.030776s] ... ok {1} ironic.tests.unit.drivers.modules.test_inspect_utils.SwiftCleanUp.test_clean_up_swift_entries_with_404_exception [0.055354s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestActions.test_action_error_cases [0.098276s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.SwiftCleanUp.test_clean_up_swift_entries_with_fail_exception [0.060798s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.SwiftCleanUp.test_clean_up_swift_entries_with_fail_exceptions [0.064206s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolCheckInitTestCase.test_console_init_calls [0.051631s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_already_checked [0.021536s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat [0.019899s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat_already_checked [0.020148s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls [0.020281s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls_already_checked [0.026877s] ... ok {0} ironic.tests.unit.common.test_inspection_rule.TestActions.test_action_path_dot_slash_notation [0.214520s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolCheckInitTestCase.test_power_init_calls [0.048915s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_already_checked [0.029745s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_1 [0.020960s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_2 [0.031011s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_3 [0.025230s] ... ok {0} ironic.tests.unit.common.test_inspection_rule.TestActions.test_action_with_dict_loop [0.178697s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls [0.030383s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_vendor_passthru_init_calls_already_checked [0.030400s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_IPMI_version_1_5 [0.040134s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_cipher_suite [0.030438s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_cipher_suite_error_noconfig [0.042837s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_cipher_suite_set_with_error_config [0.043848s] ... ok {0} ironic.tests.unit.common.test_inspection_rule.TestActions.test_action_with_list_loop [0.225051s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_cipher_suite_set_with_error_noconfig [0.053987s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_exception [0.061504s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_first_call_to_address [0.046086s] ... ok {0} ironic.tests.unit.common.test_inspection_rule.TestActions.test_add_trait_action [0.173307s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_second_call_to_address_no_sleep [0.033108s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_second_call_to_address_sleep [0.059240s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_try_different_cipher_suite [0.030343s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_two_calls_to_diff_address [0.030680s] ... ok {0} ironic.tests.unit.common.test_inspection_rule.TestActions.test_del_attribute_action [0.167322s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_check_exit_code [0.032231s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_dual_bridging [0.065429s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_empty_username [0.029467s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_ironic_retries [0.034483s] ... ok {0} ironic.tests.unit.common.test_inspection_rule.TestActions.test_del_port_attribute_action [0.167078s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.028315s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_single_bridging [0.067384s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_with_timeout [0.042906s] ... ok {0} ironic.tests.unit.common.test_inspection_rule.TestActions.test_extend_attribute_action [0.141326s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_timing [0.031560s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__exec_ipmitool_without_timing [0.046600s] ... ok {0} ironic.tests.unit.common.test_inspection_rule.TestActions.test_extend_plugin_data_action [0.123613s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_without_username [0.080473s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__prepare_ipmi_password_str_password [0.079863s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test__prepare_ipmi_password_with_numeric_password [0.100867s] ... ok {0} ironic.tests.unit.common.test_inspection_rule.TestActions.test_extend_port_attribute_action [0.207102s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_bmc_initialization_in_progress [0.101891s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_non_retryable_failure_insufficient_resources_for_session [0.042334s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_non_retryable_failure_node_busy [0.047735s] ... ok {0} ironic.tests.unit.common.test_inspection_rule.TestActions.test_fail_action [0.182401s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_out_of_space [0.042503s] ... ok {0} ironic.tests.unit.common.test_inspection_rule.TestActions.test_log_action [0.132101s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestActions.test_remove_trait_action [0.162821s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.403682s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retries_exceeded_bmc_initialization_in_progress [0.037989s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retries_exceeded_insufficient_resources_for_session [0.035403s] ... ok {0} ironic.tests.unit.common.test_inspection_rule.TestActions.test_set_attribute_action [0.237562s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.040272s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retries_exceeded_out_of_space [0.032540s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retries_exceeded_timeout [0.049342s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retry_bmc_initialization_in_progress [0.055348s] ... ok {0} ironic.tests.unit.common.test_inspection_rule.TestActions.test_set_capability_action [0.200710s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_retry_insufficient_resources_for_session [0.046112s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retry_node_busy [0.042461s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retry_out_of_space [0.069882s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodOnEnvPersistenceTestCase.test_exec_ipmitool_exception_retry_timeout [0.044489s] ... ok {0} ironic.tests.unit.common.test_inspection_rule.TestActions.test_set_plugin_data_action [0.181407s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEHttpBootTestCase.test_http_boot_enabled [0.036777s] ... ok {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEHttpBootTestCase.test_prepare_ramdisk [0.091572s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEHttpBootTestCase.test_prepare_ramdisk_rescue [0.126460s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.drivers.modules.test_ipxe.iPXEHttpBootTestCase.test_prepare_ramdisk_uefi [0.107832s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_pxe.HttpBootTestCase.test_http_boot_enabled [0.079736s] ... ok {1} ironic.tests.unit.drivers.modules.test_pxe.HttpBootTestCase.test_prepare_ramdisk [0.097454s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_pxe.HttpBootTestCase.test_prepare_ramdisk_rescue [0.104487s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_pxe.HttpBootTestCase.test_prepare_ramdisk_uefi [0.089087s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_all_args [0.034155s] ... ok {1} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_argsinfo [0.033208s] ... ok {1} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_priority [0.020938s] ... ok {1} ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_priority_only [0.018681s] ... ok {1} ironic.tests.unit.drivers.test_base.TestDeployInterface.test_warning_on_heartbeat [0.043370s] ... ok {0} ironic.tests.unit.common.test_inspection_rule.TestActions.test_set_port_attribute_action [0.975966s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_irmc.IRMCHardwareTestCase.test_default_interfaces [0.084562s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_irmc.IRMCHardwareTestCase.test_override_with_agent_rescue [0.056993s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_irmc.IRMCHardwareTestCase.test_override_with_bios_configuration [0.077392s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestActions.test_unset_capability_action [0.154023s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_irmc.IRMCHardwareTestCase.test_override_with_boot_configuration [0.089040s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_irmc.IRMCHardwareTestCase.test_override_with_inspector [0.064576s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestActions.test_unset_plugin_data_action [0.169211s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_irmc.IRMCHardwareTestCase.test_override_with_ipmitool_power [0.069954s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_irmc.IRMCHardwareTestCase.test_override_with_raid_configuration [0.053089s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_fields.TestNotificationStatusField.test_coerce_bad_value [0.024533s] ... ok {1} ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_good_value [0.039816s] ... ok {0} ironic.tests.unit.common.test_kickstart_utils.KSUtilsTestCase.test_prepare_config_drive [0.185017s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestNodePayloads.test_node_corrected_power_state_payload [0.029587s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_crud_payload [0.025867s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload [0.049339s] ... ok {0} ironic.tests.unit.common.test_kickstart_utils.KSUtilsTestCase.test_prepare_config_drive_in_swift [0.131624s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestNodePayloads.test_node_payload_no_traits [0.070814s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_traits_is_none [0.059863s] ... ok {0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_connection_error [0.101579s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestNodePayloads.test_node_set_power_state_payload [0.074780s] ... ok {1} ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_provision_state_payload [0.047660s] ... ok {0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_empty [0.109598s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_create [0.041103s] ... ok {1} ironic.tests.unit.objects.test_node_inventory.TestNodeInventoryObject.test_destroy [0.034929s] ... ok {1} ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_chooses_newer_properly [0.026208s] ... ok {0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http [0.103506s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestRegistry.test_hook_keeps_newer_properly [0.038075s] ... ok {1} ironic.tests.unit.objects.test_port.TestPortObject.test_create [0.030128s] ... ok {1} ironic.tests.unit.objects.test_port.TestPortObject.test_get_bad_id_and_uuid_and_name_and_address [0.032997s] ... ok {0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http_error [0.122986s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_port.TestPortObject.test_get_by_address [0.052522s] ... ok {1} ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_id [0.064139s] ... ok {0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http_noauth [0.142476s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_port.TestPortObject.test_get_by_name [0.105580s] ... ok {0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_invalid_json [0.098304s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_port.TestPortObject.test_get_by_uuid [0.067047s] ... ok {1} ironic.tests.unit.objects.test_port.TestPortObject.test_list [0.054585s] ... ok {0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_mold_connection_error_exceeded [0.099546s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_port.TestPortObject.test_list_deprecated_owner [0.053560s] ... ok {1} ironic.tests.unit.objects.test_port.TestPortObject.test_payload_schemas [0.027001s] ... ok {1} ironic.tests.unit.objects.test_port.TestPortObject.test_refresh [0.023530s] ... ok {1} ironic.tests.unit.objects.test_port.TestPortObject.test_save [0.021793s] ... ok {0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_swift [0.110957s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_port.TestPortObject.test_save_after_refresh [0.067837s] ... ok {1} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_supported [0.028857s] ... ok {1} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_is_smartnic_unsupported [0.024449s] ... ok {0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_swift_noauth [0.116178s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_port.TestPortObject.test_supports_physical_network_supported [0.051149s] ... ok {1} ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_unsupported [0.029989s] ... ok {1} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write [0.030470s] ... ok {0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_connection_error [0.112308s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write_custom_ioerror [0.042993s] ... ok {1} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write_would_block [0.057318s] ... ok {0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_connection_error_exceeded [0.121789s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {1} ironic.tests.unit.pxe_filter.test_dnsmasq.TestExclusiveWriteOrPass.test_write_would_block_too_many_times [0.028372s] ... ok {1} ironic.tests.unit.test_base.DontBlockExecuteTestCase.test_no_exception_raised_for_execute [0.021961s] ... ok {0} ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http [0.097854s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_molds.ConfigurationMoldTestCase.test_save_configuration_http_error [0.116598s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_molds.ConfigurationMoldTestCase.test_save_configuration_http_noauth [0.099467s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_molds.ConfigurationMoldTestCase.test_save_configuration_swift [0.087630s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_molds.ConfigurationMoldTestCase.test_save_configuration_swift_noauth [0.088406s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments [0.059541s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_fixed_ip_l2 [0.057187s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_fixed_ip_l3 [0.031591s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments_no_physnet [0.047891s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_failure [0.051298s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_missing [0.072065s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_no_segment [0.041047s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_no_segment_no_physnet [0.040814s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_failure [0.069631s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_missing [0.061019s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment [0.051549s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetSegmentBySubnetUUID.test__get_segment_by_subnet_uuid [0.037020s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetSegmentBySubnetUUID.test__get_segment_by_subnet_uuid_failure [0.041649s] ... ok {0} ironic.tests.unit.common.test_neutron.TestGetSegmentBySubnetUUID.test__get_segment_by_subnet_uuid_missing_segment [0.075200s] ... ok {0} ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port [0.043006s] ... ok {0} ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port_with_client [0.057934s] ... ok {0} ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port_with_exception [0.045720s] ... ok {0} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_name [0.027292s] ... ok {0} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_uuid [0.027030s] ... ok {0} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_duplicate [0.023483s] ... ok {0} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_failure [0.028421s] ... ok {0} ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_not_found [0.022471s] ... ok {0} ironic.tests.unit.common.test_nova.TestNovaAdapter.test_get_nova_adapter [0.025933s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_01 [0.043987s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_02 [0.041294s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_03 [0.032826s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_04 [0.024765s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_05 [0.026085s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_06 [0.027926s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_07 [0.024254s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_08 [0.027481s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_09 [0.023708s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_10 [0.032072s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_11 [0.018888s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_12 [0.058172s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_13 [0.054590s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_14 [0.104413s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_15 [0.042302s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_16 [0.029653s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_17 [0.029696s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_access_forbidden [0.046180s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_passes [0.023027s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_policy_not_registered [0.022830s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_config_file [0.327464s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_namespace [0.071038s] ... ok {0} ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_no_args [0.054618s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.CleanUpPxeEnvTestCase.test__clean_up_pxe_env [0.054037s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_grub_mac_path [0.038754s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_ip_address_path [0.023910s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path [0.023437s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path_ipxe [0.025536s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__link_ip_address_pxe_configs [0.071495s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_pxe_utils.TestPXEUtils.test__write_infiniband_mac_pxe_configs [0.047128s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_pxe_utils.TestPXEUtils.test__write_mac_ipxe_configs [0.081804s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_pxe_utils.TestPXEUtils.test__write_mac_pxe_configs [0.047872s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_pxe_utils.TestPXEUtils.test_clean_up_pxe_config [0.052498s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi [0.051363s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_instance_info [0.071856s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_mac_address [0.070577s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_no_ipaddress [0.055503s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script [0.043274s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_already_exists [0.035882s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_copy_file_different [0.041574s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_fallback [0.025877s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config [0.069716s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs_bios [0.050486s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs_uefi [0.056301s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_pxe_utils.TestPXEUtils.test_create_pxe_config_set_dir_permission [0.052246s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_grub [0.086218s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_ipxe [0.059535s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_mac_address [0.044199s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_pxe_utils.TestPXEUtils.test_default_grub_config [0.047822s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_anaconda [0.055053s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_iso [0.044605s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_ramdisk [0.036198s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config [0.040263s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_multipath [0.041097s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_no_extra_volumes [0.037518s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_script [0.033381s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_config [0.081920s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_timeout_config [0.072892s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_pxe_config [0.057014s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance [0.111577s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_bios [0.111324s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipv4 [0.131433s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipv6 [0.152326s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipxe_ipv4 [0.447556s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_http_ipxe_ipv6 [0.052917s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6 [0.042990s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6_bios [0.059908s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_pxe_utils.TestPXEUtils.test_fallback_ipxe_boot_script [0.031175s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info [0.032726s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_bad_driver_info [0.047392s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_ipxe [0.057938s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_pxe_config_file_path [0.031222s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info [0.033175s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info_ipxe [0.077581s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_link_mac_pxe_configs_with_pxe_disabled [0.056409s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_pxe_utils.TestPXEUtils.test_place_common_config [0.046305s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_place_common_config_existing_dirs [0.038205s] ... ok {0} ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_pxe_config [0.033859s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_additional_property [0.020168s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_custom_schema [0.027464s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_disk_type [0.041887s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_int_type [0.031235s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_is_root_volume [0.023808s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_multiple_is_root_volume [0.024738s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_number_of_phy_disks [0.050223s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_physical_disks [0.055526s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_raid_level [0.023788s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_share_physical_disks [0.023287s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_size_gb [0.023813s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_max_size_gb [0.021851s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_logical_disk [0.025306s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_raid_level [0.031472s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_size_gb [0.043629s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay [0.030276s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay_software [0.025234s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_too_few_physical_disks [0.044905s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_with_jbod_volume [0.035144s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_logical_disks [0.028590s] ... ok {0} ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_size_gb [0.033434s] ... ok {0} ironic.tests.unit.common.test_utils.UnlinkTestCase.test_unlink [0.025215s] ... ok {0} ironic.tests.unit.common.test_utils.UnlinkTestCase.test_unlink_ENOENT [0.026088s] ... ok {0} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_correct_setting [0.048003s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ :530: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.15; use exec_module() instead {0} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_default [0.041931s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ :530: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.15; use exec_module() instead {0} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_default_limit [0.036452s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ :530: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.15; use exec_module() instead {0} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_negative_setting [0.094108s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ :530: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.15; use exec_module() instead {0} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_zero_setting [0.105269s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ :530: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.15; use exec_module() instead {0} ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_wsgi_service_with_ssl_enabled [0.086847s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ :530: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.15; use exec_module() instead {0} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_check_orphaned_allocations [0.191713s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.173706s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_with_node_id [0.134023s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_destroy_allocation_with_active_node [0.051650s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_destroy_allocation_with_node [0.108922s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_destroy_allocation_with_node_in_maintenance [0.117659s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_destroy_allocation_with_transient_node [0.123473s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_destroy_allocation_without_node [0.073010s] ... ok {0} ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_resume_allocations [0.653951s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.BackfillAllocationTestCase.test_candidate_nodes_mismatch [0.100678s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.BackfillAllocationTestCase.test_node_associated_with_another_instance [0.145713s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.BackfillAllocationTestCase.test_non_existing_node [0.065195s] ... ok {0} ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_resource_class_mismatch [0.142906s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.BackfillAllocationTestCase.test_state_not_active [0.126340s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.BackfillAllocationTestCase.test_traits_mismatch [0.174523s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.BackfillAllocationTestCase.test_uuid_associated_with_another_instance [0.160918s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.BackfillAllocationTestCase.test_with_associated_node [0.118384s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.BackfillAllocationTestCase.test_with_candidate_nodes [0.114357s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.BackfillAllocationTestCase.test_with_unassociated_node [0.120706s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.BackfillAllocationTestCase.test_without_resource_class [0.123243s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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 [0.258534s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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( {0} ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_failed [0.208307s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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_no_console_enabled [0.088168s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_base_manager.StartConsolesTestCase.test__start_consoles_node_locked [0.208598s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_base_manager.StartConsolesTestCase.test__start_consoles_node_not_found [0.216024s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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_cleaning.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children [0.580794s] ... ok 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( {0} ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestChildNodes.test_do_next_clean_step_with_children_by_uuid [0.390705s] ... ok 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.ChangeNodePowerStateTestCase.test_change_node_power_state_exception_in_background_task [0.280021s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ChangeNodePowerStateTestCase.test_change_node_power_state_node_already_locked [0.183997s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.ChangeNodePowerStateTestCase.test_change_node_power_state_power_on [0.157759s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ChangeNodePowerStateTestCase.test_change_node_power_state_soft_power_off_timeout [0.200044s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ChangeNodePowerStateTestCase.test_change_node_power_state_unsupported_state [0.287383s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ChangeNodePowerStateTestCase.test_change_node_power_state_validate_fail [0.201006s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ChangeNodePowerStateTestCase.test_change_node_power_state_worker_pool_full [0.514004s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_get_power_fail [0.166792s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_no_state_change [0.326399s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_set_power_fail [0.292840s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_spawn_fail [0.227746s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_success [0.305395s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ConsoleTestCase.test_disable_console_already_disabled [0.225569s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.ConsoleTestCase.test_enable_console_already_enabled [0.141554s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ConsoleTestCase.test_get_console [0.059234s] ... ok {0} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_disabled [0.061243s] ... ok {0} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_validate_fail [0.071706s] ... ok {0} ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_disabled [0.273951s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ConsoleTestCase.test_set_console_mode_enabled [0.144069s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ConsoleTestCase.test_set_console_mode_start_fail [0.130256s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ConsoleTestCase.test_set_console_mode_stop_fail [0.470406s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ConsoleTestCase.test_set_console_mode_validation_fail [0.135191s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.ConsoleTestCase.test_set_console_mode_worker_pool_full [0.091656s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.088937s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.084010s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_wrong_state [0.143239s] ... ok 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.CreatePortTestCase.test_create_port [0.045559s] ... ok {0} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_mac_exists [0.051806s] ... ok {0} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_conflict [0.053957s] ... ok {0} ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_inconsistent [0.037586s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node [0.205815s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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_manager.DestroyNodeTestCase.test_destroy_node_adopt_failed_no_power_change [0.248237s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.DestroyNodeTestCase.test_destroy_node_allowed_in_maintenance [0.221983s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.DestroyNodeTestCase.test_destroy_node_associated [0.147612s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.DestroyNodeTestCase.test_destroy_node_broken_driver [0.167951s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.DestroyNodeTestCase.test_destroy_node_console_disable_fail [0.268091s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.DestroyNodeTestCase.test_destroy_node_console_enabled [0.118058s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.DestroyNodeTestCase.test_destroy_node_invalid_provision_state [0.110624s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.DestroyNodeTestCase.test_destroy_node_power_off [0.092304s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.DestroyNodeTestCase.test_destroy_node_protected [0.139196s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.DestroyNodeTestCase.test_destroy_node_protected_provision_state_available [0.118433s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.DestroyNodeTestCase.test_destroy_node_reserved [0.157729s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.DestroyNodeTestCase.test_destroy_node_with_allocation [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_manager.DestroyNodeTestCase.test_inventory_in_swift_get_destroyed_after_destroying_a_node_by_uuid [0.121034s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.DestroyNodeTestCase.test_inventory_in_swift_not_destroyed_SwiftOSE_maintenance [0.126257s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.DestroyNodeTestCase.test_inventory_in_swift_not_destroyed_SwiftOSE_not_maintenance [0.401237s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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 [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( {0} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_active_and_maintenance_no_vif [0.097952s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.055650s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_port_unbound [0.055710s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_state [0.105637s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.079380s] ... ok {0} ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_with_instance_not_in_active_port_bound [0.088594s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.104324s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeRescueTestCase.test__do_node_rescue_abort [0.085280s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeRescueTestCase.test__do_node_rescue_abort_clean_up_fail [0.085749s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeRescueTestCase.test__do_node_rescue_bad_state [0.156312s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.DoNodeRescueTestCase.test__do_node_rescue_errors [0.198688s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.DoNodeRescueTestCase.test__do_node_rescue_returns_rescue [0.110426s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.DoNodeRescueTestCase.test__do_node_rescue_returns_rescuewait [0.111491s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.DoNodeRescueTestCase.test__do_node_unrescue [0.149949s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.DoNodeRescueTestCase.test__do_node_unrescue_bad_state [0.174612s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.DoNodeRescueTestCase.test__do_node_unrescue_ironic_error [0.139597s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.DoNodeRescueTestCase.test__do_node_unrescue_other_error [0.093076s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.DoNodeRescueTestCase.test_do_node_rescue [0.090046s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.DoNodeRescueTestCase.test_do_node_rescue_invalid_state [0.125675s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.DoNodeRescueTestCase.test_do_node_rescue_maintenance [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.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_network_validate_fail [0.090375s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeRescueTestCase.test_do_node_rescue_when_power_validate_fail [0.077353s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeRescueTestCase.test_do_node_rescue_when_rescue_validate_fail [0.625989s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeRescueTestCase.test_do_node_unrescue [0.204056s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.DoNodeRescueTestCase.test_do_node_unrescue_invalid_state [0.206970s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.DoNodeRescueTestCase.test_do_node_unrescue_maintenance [0.075671s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeRescueTestCase.test_do_node_unrescue_validate_fail [0.064641s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.DoNodeRescueTestCase.test_provision_rescue_abort [0.154095s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears [0.084168s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_locked [0.068215s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_no_worker_avail [0.058397s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_with_other_exception [0.063044s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_maintenance_after_lock [0.081381s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_no_deploywait_after_lock [0.056016s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_not_mapped [0.057624s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_timeout [0.057534s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit [0.054624s] ... ok {0} ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fail [0.095040s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.ManagerTestProperties.test_driver_properties_ilo [0.069208s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.ManagerTestProperties.test_driver_properties_ipmi [0.103668s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.ManagerTestProperties.test_driver_properties_manual_management [0.137745s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.ManagerTestProperties.test_driver_properties_snmp [0.146441s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.RaidTestCases.test_get_raid_logical_disk_properties [0.157340s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.RaidTestCases.test_set_target_raid_config [0.128981s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.137249s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_invalid_parameter_value [0.148259s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.223234s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.SensorsTestCase.test___send_sensor_data_disabled [0.275295s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.SensorsTestCase.test___send_sensor_data_multiple_workers [0.125906s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.SensorsTestCase.test___send_sensor_data_one_worker [0.181159s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.SensorsTestCase.test__filter_out_unsupported_types_all [0.199467s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.SensorsTestCase.test__filter_out_unsupported_types_non [0.179323s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.SensorsTestCase.test__filter_out_unsupported_types_part [0.603761s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.SensorsTestCase.test__sensors_conductor [0.081284s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.SensorsTestCase.test_send_sensor_task [0.079673s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.SensorsTestCase.test_send_sensor_task_maintenance [0.078348s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.SensorsTestCase.test_send_sensor_task_no_management [0.087112s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.SensorsTestCase.test_send_sensor_task_shutdown [0.081613s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using 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.ServiceDoNodeDeployTestCase.test_do_node_deploy_invalid_state [0.100986s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ServiceDoNodeDeployTestCase.test_do_node_deploy_maintenance [0.218508s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ServiceDoNodeDeployTestCase.test_do_node_deploy_partial_ok [0.129234s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ServiceDoNodeDeployTestCase.test_do_node_deploy_power_validate_fail [0.136251s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done [0.197609s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_error [0.276084s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting [0.420900s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_deployfail_state [0.352815s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_error_state [0.343853s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_from_available_state [0.348529s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_protected [0.311061s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ServiceDoNodeDeployTestCase.test_do_node_deploy_traits_validate_fail [0.220367s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_fail [0.518132s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_template_fail [0.261544s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.ServiceDoNodeDeployTestCase.test_do_node_deploy_worker_pool_full [0.853188s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /builddir/build/BUILD/ironic-29.1.0.dev82/ironic/conductor/base_manager.py:115: DeprecationWarning: Using class 'GreenThreadPoolExecutor' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green executor. self._executor = futurist.GreenThreadPoolExecutor( /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. 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.UpdateVolumeConnectorTestCase.test_update_volume_connector [0.062384s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.UpdateVolumeConnectorTestCase.test_update_volume_connector_duplicate [0.060687s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_locked [0.028095s] ... ok {0} ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_power_on [0.061548s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.UpdateVolumeConnectorTestCase.test_update_volume_connector_type [0.060564s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.UpdateVolumeConnectorTestCase.test_update_volume_connector_uuid [0.043563s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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_notification_utils.ProvisionNotifyTestCase.test_emit_notification [0.136078s] ... ok {0} ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_mask_secrets [0.029401s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps [0.075461s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeCleaningStepsTestCase.test__get_cleaning_steps_only_enabled [0.044110s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_no_override [0.041344s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_disable [0.063912s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_fail [0.051305s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_ok [0.075632s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_unsorted [0.039680s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeCleaningStepsTestCase.test__validate_user_clean_steps [0.087669s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeCleaningStepsTestCase.test__validate_user_clean_steps_disable_ramdisk [0.049384s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeCleaningStepsTestCase.test__validate_user_clean_steps_get_steps_exception [0.054863s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeCleaningStepsTestCase.test__validate_user_clean_steps_invalid_arg [0.066877s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeCleaningStepsTestCase.test__validate_user_clean_steps_missing_required_arg [0.082051s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeCleaningStepsTestCase.test__validate_user_clean_steps_no_steps [0.116191s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeCleaningStepsTestCase.test__validate_user_clean_steps_not_supported [0.128538s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeCleaningStepsTestCase.test__validate_user_clean_steps_requires_ramdisk [0.090464s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeCleaningStepsTestCase.test__validate_user_clean_steps_reserved_options [0.057769s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_automated [0.105592s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_manual [0.142542s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeVerifyStepsTestCase.test__get_verify_steps [0.076621s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeVerifyStepsTestCase.test__get_verify_steps_only_enabled [0.051268s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_fail [0.047715s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_off [0.053116s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_ok [0.031782s] ... ok {0} ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_unsorted [0.074379s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.NodeVerifyStepsTestCase.test_execute_verify_step [0.104567s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_first_arg [0.038826s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_excl_lock_task_second_arg [0.025065s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_first_arg [0.024505s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_second_arg [0.022354s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_error_state [0.027563s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_no_state_change [0.042458s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_only_once [0.060661s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_resource_released [0.080472s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_stable [0.062912s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_unstable [0.073746s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_stable [0.111237s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_unstable [0.083286s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error [0.089649s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_cancelled [0.048728s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_exists [0.040178s] ... ok {0} ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_no_error [0.025170s] ... ok {0} ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_add_secret_token [0.019523s] ... ok {0} ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_is_agent_token_present [0.020459s] ... ok {0} ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_wipe_deploy_internal_info [0.021416s] ... ok {0} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_already_present [0.098429s] ... ok {0} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_change_secure_off [0.103736s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.CacheBootModeTestCase.test_change_secure_off_to_none [0.073226s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.CacheBootModeTestCase.test_failed_boot_mode [0.129447s] ... ok {0} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_failed_secure [0.052100s] ... ok {0} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_noneness [0.056356s] ... ok {0} ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_retreive_and_set [0.058486s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.CacheBootModeTestCase.test_unsupported [0.055129s] ... ok {0} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_already_present [0.058802s] ... ok {0} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_empty [0.051912s] ... ok {0} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_failed [0.709963s] ... ok {0} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_ok [0.087920s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_unsupported [0.086469s] ... ok {0} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track [0.135010s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.FastTrackTestCase.test_is_fast_track_config_false [0.108608s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.FastTrackTestCase.test_is_fast_track_disabled_in_driver_info [0.105144s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.FastTrackTestCase.test_is_fast_track_disabled_in_driver_info_string [0.086951s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.FastTrackTestCase.test_is_fast_track_error_blocks [0.097223s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.FastTrackTestCase.test_is_fast_track_inspected_no_heartbeat [0.116268s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.FastTrackTestCase.test_is_fast_track_no_heartbeat [0.088597s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.FastTrackTestCase.test_is_fast_track_not_in_servicing [0.096540s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.FastTrackTestCase.test_is_fast_track_power_off_false [0.072978s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_powered_after_heartbeat [0.127251s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.FastTrackTestCase.test_is_fast_track_via_driver_info [0.103587s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/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.FastTrackTestCase.test_is_fast_track_via_driver_info_string [0.127579s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.console.rfb.test_auth.RFBAuthSchemeListTestCase.test_find_scheme_fail [0.073032s] ... ok {0} ironic.tests.unit.console.rfb.test_auth.RFBAuthSchemeListTestCase.test_find_scheme_ok [0.053389s] ... ok {0} ironic.tests.unit.console.rfb.test_auth.RFBAuthSchemeListTestCase.test_find_scheme_priority [0.058687s] ... ok {0} ironic.tests.unit.console.rfb.test_auth.RFBAuthSchemeListTestCase.test_load_ok [0.063878s] ... ok {0} ironic.tests.unit.console.rfb.test_auth.RFBAuthSchemeListTestCase.test_load_unknown [0.020113s] ... ok {0} ironic.tests.unit.db.sqlalchemy.test_api.TestDBWriteMethodsRetryOnDeadlock.test_retry_on_deadlock [0.021241s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create [0.048248s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_name [0.039898s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create_allocation_duplicated_uuid [0.028726s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation [0.037946s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_that_does_not_exist [0.052099s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_uuid [0.049106s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation_with_node [0.075800s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id [0.064850s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id_that_does_not_exist [0.032644s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name [0.038354s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name_that_does_not_exist [0.025962s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid [0.032595s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid_that_does_not_exist [0.037019s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list [0.075798s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_conductor_affinity [0.092632s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_node [0.082216s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_rsc [0.067228s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_state [0.028850s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_invalid_fields [0.028728s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_sorted [0.055351s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_allocation_not_found [0.029351s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_conflict [0.028412s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_success [0.033211s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation [0.035826s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_associated_with_another_node [0.038078s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_duplicated_name [0.048461s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_node_already_associated [0.096844s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_not_found [0.050620s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_uuid [0.034089s] ... ok {0} ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_with_node_id [0.043122s] ... ok {0} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_empty_db [0.075188s] ... ok {0} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_max_count_zero [0.063768s] ... ok {0} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_1 [0.055612s] ... ok {0} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_2_some_nodes [0.133594s] ... ok {0} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_old_version_max_count_same_nodes [0.261112s] ... ok {0} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_one_node [0.233173s] ... ok {0} ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_version_exists [0.080283s] ... ok {0} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions [0.655556s] ... ok {0} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor [1.145578s] ... ok {0} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor_old [0.092038s] ... ok {0} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_emptyDB [0.417651s] ... ok {0} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_handles_missing_table [0.026458s] ... ok {0} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_ignore_node [0.238018s] ... ok {0} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_missing_version_columns [0.026988s] ... ok {0} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_no_version [0.303226s] ... ok {0} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_old [0.279631s] ... ok {0} ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_raises_missing_table [0.027695s] ... ok {0} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_create_firmware_component [0.027611s] ... ok {0} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_create_firmware_component_duplicate [0.039039s] ... ok {0} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_delete_firmware_component_list [0.043603s] ... ok {0} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component [0.028962s] ... ok {0} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_list [0.027630s] ... ok {0} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_list_node_not_exist [0.037889s] ... ok {0} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_node_not_exist [0.024219s] ... ok {0} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_get_firmware_component_setting_not_exist [0.036284s] ... ok {0} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_update_firmware_component_not_exist [0.038721s] ... ok {0} ironic.tests.unit.db.test_firmware_component.DbFirmwareComponentTestCase.test_update_firmware_components [0.051378s] ... ok {0} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_destroy_node_history_by_uuid [0.044241s] ... ok {0} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_id [0.023580s] ... ok {0} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_id_not_found [0.040876s] ... ok {0} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_node_id [0.028299s] ... ok {0} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_node_id_empty [0.023035s] ... ok {0} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_uuid [0.024714s] ... ok {0} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_uuid_not_found [0.035609s] ... ok {0} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_node_history_list [0.032920s] ... ok {0} ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_node_history_list_sorted [0.046396s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait [0.027333s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_at_limit [0.256468s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate [0.067994s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate_at_limit [0.272575s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_node_not_exist [0.027925s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_over_limit [0.233139s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait [0.056124s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_node_not_found [0.046788s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_not_found [0.137762s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_by_node_id [0.092925s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_empty [0.042482s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_node_not_exist [0.030933s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_exists [0.038259s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_node_not_exist [0.050518s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_not_exists [0.057642s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits [0.033886s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_at_limit [0.034240s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_duplicate [0.048447s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_node_not_exist [0.027191s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_over_limit [0.032586s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_empty_node_traits [0.042443s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits [0.040864s] ... ok {0} ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits_node_not_exist [0.048067s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_address [0.365335s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_name [0.041281s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_uuid [0.040054s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_no_mode [0.032924s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup [0.032930s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_not_empty [0.035977s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_that_does_not_exist [0.038518s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_uuid [0.028486s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address [0.026754s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address_that_does_not_exist [0.029400s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id [0.045416s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id_that_does_not_exist [0.036119s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name [0.041995s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name_that_does_not_exist [0.064893s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid [0.037967s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid_that_does_not_exist [0.028730s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list [0.031869s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list_sorted [0.030593s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id [0.025142s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id_that_does_not_exist [0.034287s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup [0.033012s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_address [0.034231s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_name [0.026120s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_not_found [0.031929s] ... ok {0} ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_uuid [0.042766s] ... ok {0} ironic.tests.unit.drivers.modules.drac.test_boot.DracBootTestCase.test__set_boot_device_cd [0.076229s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_boot.DracBootTestCase.test__set_boot_device_disk [0.073600s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_boot.DracBootTestCase.test__set_boot_device_floppy [0.087485s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_boot.DracBootTestCase.test__set_boot_device_persistent [0.056372s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_boot.DracBootTestCase.test_validate_correct_vendor [0.034007s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_ca_file_and_snmp_inspection_true [0.040923s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_cafile [0.027233s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_multiple_params [0.028970s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_port [0.026217s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_timeout [0.034855s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_value_verify_ca [0.044469s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_address [0.024310s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_multiple_params [0.025180s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_password [0.036054s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_username [0.028001s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_path_verify_ca_dir [0.025102s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_path_verify_ca_file [0.026699s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_false [0.034500s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_true_raises [0.049944s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_integer_auth_protocol [0.025350s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_auth_protocol [0.027678s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_priv_protocol [0.065617s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_no_auth_priv_protocols [0.031817s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_boolean_false [0.024428s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_boolean_true [0.022881s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_default_value [0.028310s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_verify_ca_string_false [0.039241s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate [0.062583s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_console.IloConsoleInterfaceTestCase.test_validate_exc [0.091949s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict [0.035958s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_excluded_capability [0.024415s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_gpu_capabilities [0.039008s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_capabilities_ok [0.029905s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail [0.029484s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_invalid_format [0.038812s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_mac_invalid_format [0.044031s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_empty [0.027004s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_not_dict [0.024712s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_ok [0.024622s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_essential_keys_fail_missing_key [0.035046s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_ok [0.027615s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_power_state [0.036158s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_properties [0.041338s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_supported_power_states [0.050909s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_power.IloPowerTestCase.test_reboot_no_timeout [0.075591s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_power.IloPowerTestCase.test_reboot_with_timeout [0.080110s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_power.IloPowerTestCase.test_set_power_state_no_timeout [0.041059s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_power.IloPowerTestCase.test_set_power_state_timeout [0.052601s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_power.IloPowerTestCase.test_validate [0.050631s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate_fail [0.332634s] ... ok {0} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_invalid_state [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.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_maintenance [0.049942s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_manage [0.042758s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_missing_boot_iso_href [0.041927s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_is_it_a_supported_system [0.044489s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_vendor.VendorPassthruTestCase.test__validate_is_it_a_supported_system_exception [0.045657s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_vendor.VendorPassthruTestCase.test_boot_into_iso [0.047105s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_vendor.VendorPassthruTestCase.test_validate_boot_into_iso [0.052036s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_vendor.VendorPassthruTestCase.test_validate_create_subscription [0.048363s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_vendor.VendorPassthruTestCase.test_validate_operation_exeption [0.050511s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_extra_hardware_with_errors [0.042655s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_invalid_data_strict_mode_off [0.040330s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_invalid_data_strict_mode_on [0.038919s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_no_data_received [0.048625s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_extra_hardware.ExtraHardwareTestCase.test_valid_extra_hardware [0.039134s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_local_link_connection.LocalLinkConnectionTestCase.test_interface_not_in_all_interfaces [0.047392s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_local_link_connection.LocalLinkConnectionTestCase.test_invalid_chassis_id_subtype [0.079290s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_local_link_connection.LocalLinkConnectionTestCase.test_invalid_port_id_subtype [0.088950s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_local_link_connection.LocalLinkConnectionTestCase.test_invalid_tlv_value_hex_format [0.083749s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_local_link_connection.LocalLinkConnectionTestCase.test_lldp_none [0.051867s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_local_link_connection.LocalLinkConnectionTestCase.test_no_port_in_ironic [0.047774s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_local_link_connection.LocalLinkConnectionTestCase.test_port_id_subtype_mac [0.052173s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_local_link_connection.LocalLinkConnectionTestCase.test_port_local_link_connection_already_exists [0.058052s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_local_link_connection.LocalLinkConnectionTestCase.test_valid_data [0.056521s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_active_interfaces [0.027056s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_all_interfaces [0.026605s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_no_pxe_fallback_to_all [0.026217s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_nothing_to_add [0.026011s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.hooks.test_validate_interfaces.ValidateInterfacesTestCase.test_pxe_only [0.025684s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_custom_params [0.066597s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_disable_power_off [0.049716s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_error [0.081713s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_fast_track [0.056817s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_fast_track_via_driver_info [0.074944s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_managed_ok [0.056608s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_require_managed_boot [0.049968s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_unmanaged_error [0.042738s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_unmanaged_ok [0.035978s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_validate_ok [0.055477s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.InspectHardwareTestCase.test_validate_require_managed_boot [0.045300s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_boot_clean_up_failed [0.046500s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_managed [0.068652s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_managed_disable_power_off [0.061587s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_managed_no_power_off [0.041043s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_managed_no_power_off_on_fast_track [0.093719s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_network_clean_up_failed [0.052220s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_unmanaged [0.025001s] ... ok {0} ironic.tests.unit.drivers.modules.inspector.test_interface.TearDownManagedInspectionTestCase.test_unmanaged_force_power_off [0.048907s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_check_elcm_license_fail_elcm_error [0.027099s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_check_elcm_license_fail_invalid_json [0.025855s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_check_elcm_license_success_with_200 [0.039910s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_check_elcm_license_success_with_500 [0.051888s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_client [0.039412s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_report [0.025364s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_auth_method [0.037367s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_port [0.042448s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_sensor_method [0.055262s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_irmc_version_fail [0.069126s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_irmc_version_success [0.049706s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_disable [0.283037s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_enable [0.034036s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_fail [0.083006s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_update_ipmi_properties [0.041288s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_within_version_ranges_fail_no_match [0.026336s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_within_version_ranges_fail_no_version_set [0.026642s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_within_version_ranges_success [0.043535s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_within_version_ranges_success_out_range [0.031937s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info [0.032877s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_dir_path_verify_ca [0.038872s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_file_path_verify_ca [0.039714s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_auth_method [0.046806s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_port [0.054667s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_sensor_method [0.055987s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_auth_password [0.064915s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_auth_proto [0.055560s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_community [0.047356s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_port [0.047133s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_priv_password [0.050252s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_priv_proto [0.065511s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_security [0.027910s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_user [0.024552s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version [0.036548s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version_fips [0.028580s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_timeout [0.038816s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_verify_ca [0.032766s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_address [0.036315s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_multiple_params [0.033140s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_password [0.033608s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_auth_password [0.040291s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_priv_password [0.036377s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_snmp_user [0.031370s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_username [0.028224s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_short_snmp_auth_password [0.028316s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_short_snmp_priv_password [0.032707s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_snmpv3 [0.032825s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_string_bool_verify_ca [0.029432s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_using_snmp_security [0.026188s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_option_default [0.026545s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_snmp_driver_info_with_snmp [0.035924s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__get_mac_addresses [0.060743s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_exception [0.042507s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_ipmi [0.079417s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_redfish [0.054663s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_fpga_ids_input [0.032150s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_gpu_ids_input [0.035167s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_get_properties [0.090585s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware [0.189203s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_inspect.IRMCInspectTestCase.test_inspect_hardware_existing_cap_in_props [0.043718s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_inspect_exception [0.132282s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_inspect.IRMCInspectTestCase.test_inspect_hardware_mac_already_exist [0.410201s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_id_sand_existing_cap [0.041971s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_ids [0.045785s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_and_cpu_fpgas_results_are_different [0.066897s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_cpu_fpgas_zero_and_existing_cap [0.042637s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_pci_gpu_devices_return_zero [0.038870s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_removed [0.039851s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_with_power_off [0.144567s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_inspect.IRMCInspectTestCase.test_validate [0.035647s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate_fail [0.033598s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config [0.056835s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.067849s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.076031s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.112751s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.056250s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.076959s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_1_and_0 [0.046948s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_5_and_0 [0.080119s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration [0.042910s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration_return_cleared_raid_config [0.057913s] ... ok {0} ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_fail_create_raid_without_target_raid_config [0.046740s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__bind_flat_ports_set_binding_host_id [0.057791s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.073598s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.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( {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test__unbind_flat_ports [0.053132s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.060504s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.057192s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.108469s] ... ok 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.055437s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.129371s] ... ok 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.060558s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.041384s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.054047s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.057573s] ... ok {0} ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network [0.109538s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.129488s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.065398s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.057374s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.077531s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.059055s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.070882s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.043497s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_vif_attach [0.045385s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_vif_detach [0.046050s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_vif_list [0.053084s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_vif_port_changed [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( {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_create_port_when_its_state_is_none [0.051422s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_get_properties [0.034147s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_get_pxe_port_macs [0.042261s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_cpu_arch [0.312198s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_fail_missing_memory_mb [0.052518s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_boot_mode [0.058824s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu_count [0.052714s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu_frequency [0.059193s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu_instruction_set [0.122198s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu_model [0.065617s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_local_gb [0.072205s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_memory_mb [0.071442s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_nics [0.057300s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_simple_storage [0.054054s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_simple_storage_and_storage [0.050772s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_storage [0.055556s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_system_vendor [0.064946s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ok [0.075592s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_preserve_boot_mode [0.072873s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_empty_pxe_port_macs [0.056211s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_no_mac [0.064605s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_none_pxe_port_macs [0.060727s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_set_port_pxe_disabled [0.053770s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_set_port_pxe_enabled [0.063142s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_port_creation [0.053809s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_validate [0.042976s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_power_state [0.034860s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_properties [0.056877s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_supported_power_states [0.042993s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail [0.108467s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_power.RedfishPowerTestCase.test_reboot_fail_on_power_on [0.089674s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_power.RedfishPowerTestCase.test_reboot_from_power_off [0.048432s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_power.RedfishPowerTestCase.test_reboot_from_power_off_with_disable_power_off [0.052687s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_power.RedfishPowerTestCase.test_reboot_from_power_on [0.048486s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_power.RedfishPowerTestCase.test_reboot_from_power_on_with_disable_power_off [0.070691s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_power.RedfishPowerTestCase.test_reboot_not_reached [0.074653s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_power.RedfishPowerTestCase.test_set_power_state [0.059140s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_power.RedfishPowerTestCase.test_set_power_state_fail [0.084556s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_power.RedfishPowerTestCase.test_set_power_state_not_reached [0.417336s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_power.RedfishPowerTestCase.test_validate [0.039032s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_create_subscription [0.044576s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_delete_subscription [0.059657s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_eject_vmedia_all [0.060263s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_eject_vmedia_cd [0.062695s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_all_subscriptions [0.046933s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_all_subscriptions_empty [0.067874s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_subscription_does_not_exist [0.039022s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_subscription_exists [0.070898s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_invalid_delete_subscription [0.053959s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_create_subscription [0.038055s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_delete_subscription [0.039207s] ... ok {0} ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_dev [0.052239s] ... ok {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__fail_validation [0.049097s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi [0.044473s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi_and_unknown [0.086425s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_multiple_fc_wwns [0.088593s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_raises_with_insufficient_data [0.120865s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_single_path [0.115701s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_unknown_raises_excption [0.161693s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_called_with_target_and_connector [0.095893s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_fails_without_connectors [0.079615s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_no_volumes [0.207870s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure [0.053973s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure_no_attach_error [0.072021s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure [0.052422s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure_raises_exception [0.087023s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_should_write_image [0.065216s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fail_on_unknown_volume_types [0.067560s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_fc_conn_iscsi_target [0.085533s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_iscsi_conn_fc_target [0.078526s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_when_fc_connectors_unequal [0.107149s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled [0.116224s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_fc_boot_no_connectors [0.063895s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_iscsi_boot_no_connectors [0.120633s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_connectors_and_boot [0.114533s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_connectors [0.088680s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_targets [0.099713s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_connector [0.381906s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_targets [0.090993s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_no_settings [0.072436s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.063413s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.062636s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.054699s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.054694s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.049115s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.049074s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.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( {0} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_apply_configuration [0.057528s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.067491s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.136351s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.090348s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.056659s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.062581s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.063677s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.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( {0} ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_clean_steps_config_priority [0.069540s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.043800s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.AgentRescueTestCase.test_agent_rescue [0.077071s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.AgentRescueTestCase.test_agent_rescue_clean_up [0.052649s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.AgentRescueTestCase.test_agent_rescue_clean_up_no_manage_boot [0.127189s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.AgentRescueTestCase.test_agent_rescue_clean_up_smartnic [0.102980s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.AgentRescueTestCase.test_agent_rescue_disable_power_off [0.120979s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.AgentRescueTestCase.test_agent_rescue_no_manage_agent_boot [0.098460s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.AgentRescueTestCase.test_agent_rescue_power_on [0.059457s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.AgentRescueTestCase.test_agent_rescue_validate [0.048797s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.AgentRescueTestCase.test_agent_rescue_validate_fails_empty_rescue_password [0.107125s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.AgentRescueTestCase.test_agent_rescue_validate_fails_no_rescue_password [0.052637s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.AgentRescueTestCase.test_agent_rescue_validate_no_manage_agent [0.041642s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.AgentRescueTestCase.test_agent_rescue_with_smartnic_port [0.068227s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.AgentRescueTestCase.test_agent_unrescue [0.081271s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.AgentRescueTestCase.test_agent_unrescue_disable_power_off [0.070495s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.AgentRescueTestCase.test_agent_unrescue_no_manage_agent_boot [0.086987s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.AgentRescueTestCase.test_agent_unrescue_power_on [0.086742s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.AgentRescueTestCase.test_agent_unrescue_with_smartnic_port [0.071887s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ConfigureLocalBootTest.test_configure_local_boot [0.070493s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ConfigureLocalBootTest.test_configure_local_boot_boot_loader_install_fail [0.124677s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ConfigureLocalBootTest.test_configure_local_boot_enforce_persistent_boot_device_always [0.120249s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ConfigureLocalBootTest.test_configure_local_boot_enforce_persistent_boot_device_default [0.104180s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ConfigureLocalBootTest.test_configure_local_boot_enforce_persistent_boot_device_never [0.080993s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ConfigureLocalBootTest.test_configure_local_boot_lenovo [0.112805s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ConfigureLocalBootTest.test_configure_local_boot_no_root_uuid [0.100240s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ConfigureLocalBootTest.test_configure_local_boot_no_root_uuid_whole_disk [0.096406s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ConfigureLocalBootTest.test_configure_local_boot_on_non_software_raid [0.047220s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid [0.055187s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid_bios [0.099499s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid_exception_bios [0.085915s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid_exception_uefi [0.054443s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_agent.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid_explicit_uuid [0.065269s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ConfigureLocalBootTest.test_configure_local_boot_on_software_raid_explicit_uuid_bios [0.051430s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ConfigureLocalBootTest.test_configure_local_boot_set_boot_device_fail [0.092705s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ConfigureLocalBootTest.test_configure_local_boot_uefi [0.052184s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ConfigureLocalBootTest.test_configure_local_boot_whole_disk_image [0.043504s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ConfigureLocalBootTest.test_configure_local_boot_whole_disk_image_bios [0.050379s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ConfigureLocalBootTest.test_configure_local_boot_with_prep [0.046140s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_agent.TestBootcAgentDeploy.test_execute_bootc_install [0.043276s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_agent.TestBootcAgentDeploy.test_set_boot_to_disk [0.050642s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_agent.TestBootcAgentDeploy.test_set_boot_to_disk_lenovo [0.281258s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_agent.TestBootcAgentDeploy.test_validate [0.039204s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_agent.TestBootcAgentDeploy.test_validate_fails_image_source_not_set [0.062046s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_agent.TestBootcAgentDeploy.test_validate_fails_with_non_oci [0.046344s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestCustomAgentDeploy.test_clean_up [0.094278s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestCustomAgentDeploy.test_clean_up_disable_power_off [0.065483s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestCustomAgentDeploy.test_deploy [0.076009s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestCustomAgentDeploy.test_deploy_fast_track [0.088642s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestCustomAgentDeploy.test_deploy_storage_should_write_image_false [0.051353s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestCustomAgentDeploy.test_deploy_with_deployment_reboot [0.062496s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestCustomAgentDeploy.test_get_properties [0.044870s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_prepare [0.051158s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestCustomAgentDeploy.test_prepare_disable_power_off [0.068916s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestCustomAgentDeploy.test_prepare_fast_track [0.058941s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.TestCustomAgentDeploy.test_validate [0.092261s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ContinueCleaningTest.test_continue_cleaning [0.073869s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ContinueCleaningTest.test_continue_cleaning_after_reboot [0.094815s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ContinueCleaningTest.test_continue_cleaning_automated_clean_version_mismatch [0.095141s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ContinueCleaningTest.test_continue_cleaning_clean_version_mismatch_fail [0.099947s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ContinueCleaningTest.test_continue_cleaning_fail [0.060473s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ContinueCleaningTest.test_continue_cleaning_manual_clean_version_mismatch [0.158934s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ContinueCleaningTest.test_continue_cleaning_no_step_running [0.056808s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ContinueCleaningTest.test_continue_cleaning_old_command [0.078398s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ContinueCleaningTest.test_continue_cleaning_reboot [0.066842s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ContinueCleaningTest.test_continue_cleaning_running [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( {0} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_unknown [0.073122s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ContinueCleaningTest.test_continue_cleaning_with_hook [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( {0} ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_with_hook_fails [0.069930s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.ContinueCleaningTest.test_continue_manual_cleaning [0.066848s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.HeartbeatMixinTest.test_heartbeat_continue_cleaning [0.056766s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.HeartbeatMixinTest.test_heartbeat_continue_cleaning_fails [0.060538s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.HeartbeatMixinTest.test_heartbeat_continue_cleaning_polling [0.048617s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.HeartbeatMixinTest.test_heartbeat_continue_deploy_first_run [0.053850s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.HeartbeatMixinTest.test_heartbeat_continue_deploy_second_run [0.052354s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.HeartbeatMixinTest.test_heartbeat_continue_servicing [0.068386s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.HeartbeatMixinTest.test_heartbeat_continue_servicing_fails [0.069533s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.HeartbeatMixinTest.test_heartbeat_deploy_done_raises_with_event [0.058867s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.HeartbeatMixinTest.test_heartbeat_deploy_fails [0.061009s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.HeartbeatMixinTest.test_heartbeat_in_maintenance [0.083325s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_in_maintenance_abort [0.208975s] ... ok 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.test_agent_base.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state [0.085727s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state2 [0.117189s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_polling [0.050684s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.HeartbeatMixinTest.test_heartbeat_records_fast_track [0.085373s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_fast_track_via_driver_info [0.089154s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_records_when_appropriate [0.497402s] ... ok 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.test_agent_base.HeartbeatMixinTest.test_heartbeat_rescue [0.053050s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.HeartbeatMixinTest.test_heartbeat_rescue_fails [0.059687s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.HeartbeatMixinTest.test_heartbeat_resume_clean [0.085076s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.HeartbeatMixinTest.test_heartbeat_resume_clean_fails [0.124465s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_resume_service [0.061124s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.HeartbeatMixinTest.test_heartbeat_with_reservation [0.073188s] ... ok {0} ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps [0.058328s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.042762s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_deploy [0.058627s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.052226s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.046894s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.028959s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_without_master_path [0.022738s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_boot_iso_only [0.024542s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good [0.028235s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image [0.024119s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image_anaconda [0.022958s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_missing_image_source [0.039703s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_kernel [0.025610s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_ramdisk [0.024816s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_ramdisk_deploy [0.032431s] ... ok {0} ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_whole_disk_image [0.030922s] ... ok {0} ironic.tests.unit.drivers.modules.test_graphical_console.TestGraphicalConsole.test__expire_console_sessions [0.038875s] ... ok {0} ironic.tests.unit.drivers.modules.test_graphical_console.TestGraphicalConsole.test_start_console [0.034569s] ... ok {0} ironic.tests.unit.drivers.modules.test_graphical_console.TestGraphicalConsole.test_stop_console [0.039705s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch [0.022542s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_already_gpt [0.023569s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_already_raw [0.023707s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_convert_to_gpt [0.023698s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_deep_inspection_disabled [0.024626s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_disable_validation [0.022571s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_estimate_fallback [0.026592s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_format_does_not_match_glance [0.023295s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_not_safe_image [0.021663s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_part_already_exists [0.023324s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_ramdisk_image [0.021982s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_ramdisk_kernel [0.022234s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_with_image_auth [0.025227s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_amount_not_satisfied [0.022290s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_cache_still_large [0.018141s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size [0.018525s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size_with_amount [0.019007s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_files_with_links_untouched [0.019727s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_deleted [0.018201s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_with_amount [0.021935s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_cleanup_ordering [0.018308s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_dir_exception [0.023970s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_images_not_cleaned [0.033343s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_dest [0.038176s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_master [0.062884s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_out_of_date [0.041580s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_up_to_date [0.017912s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img [0.017530s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img_not_cached [0.019897s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_same_time [0.018517s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_up_to_date [0.020501s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_master [0.018106s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_updated_at [0.018706s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_oci_img [0.019265s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_oci_img_not_cached [0.019199s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_out_of_date [0.029197s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_utils.ISOCacheTestCase.test__download_image_iso [0.025173s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_utils.ISOCacheTestCase.test_fetch_image_iso [0.031321s] ... ok {0} ironic.tests.unit.drivers.modules.test_image_utils.Ilo5ImageHandlerTestCase.test_ilo5_kernel_param_config [0.030721s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc [0.051049s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_and_mac [0.042896s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_and_mac_and_uuid [0.319855s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_and_mac_not_found [0.051723s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_not_found [0.056410s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_bmc_wrong_state [0.046137s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_mac_not_found [0.044045s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_mac_wrong_state [0.046973s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_macs [0.050439s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_macs_partial [0.046581s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_unknown_bmc_and_mac [0.045401s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid [0.044903s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid_and_unknown_macs [0.040147s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid_not_found [0.038198s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_by_uuid_wrong_state [0.078499s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_bmc_and_uuid [0.120364s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_macs [0.050796s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_macs_and_bmc [0.048292s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_conflicting_macs_and_uuid [0.064648s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_duplicate_bmc [0.088210s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_duplicate_bmc_and_unknown_mac [0.038831s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_duplicate_bmc_resolved_by_macs [0.046434s] ... ok {0} ironic.tests.unit.drivers.modules.test_inspect_utils.LookupNodeTestCase.test_no_input [0.034632s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__exec_stop_console [0.042176s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.036795s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_without_user [0.040543s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.045725s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_empty_password [0.042367s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.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( {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail_nodir [0.042860s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_console_validate [0.029686s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_invalid_port [0.040051s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_missing_port [0.037220s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_missing_port_auto_allocate [0.031400s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_wrong_ipmi_protocol_version [0.035722s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_get_console [0.045514s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.040641s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.057980s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_with_port [0.051965s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_stop_console [0.037835s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_stop_console_fail [0.043038s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolSocatDriverTestCase.test__exec_stop_console [0.048955s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd [0.035995s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd_without_user [0.036376s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolSocatDriverTestCase.test__start_console [0.049618s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolSocatDriverTestCase.test__start_console_empty_password [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.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail [0.064394s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolSocatDriverTestCase.test__start_console_fail_nodir [0.049578s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolSocatDriverTestCase.test_console_validate [0.037079s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_invalid_port [0.032008s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port [0.035172s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port_auto_allocate [0.042352s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_wrong_ipmi_protocol_version [0.038482s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_get_console [0.036466s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolSocatDriverTestCase.test_start_console [0.039881s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolSocatDriverTestCase.test_start_console_alloc_port [0.082702s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolSocatDriverTestCase.test_start_console_with_port [0.058572s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolSocatDriverTestCase.test_stop_console [0.059395s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.IPMIToolSocatDriverTestCase.test_stop_console_fail [0.059459s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.iPXEBootTestCase.test_clean_up_instance [0.063612s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.iPXEBootTestCase.test_clean_up_ramdisk [0.075063s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.iPXEBootTestCase.test_clean_up_ramdisk_rescue [0.050636s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.iPXEBootTestCase.test_ensure_boot_interface_is_not_http_enabled [0.035269s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_get_properties [0.035335s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance [0.058919s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.iPXEBootTestCase.test_prepare_instance_active [0.050154s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.iPXEBootTestCase.test_prepare_instance_netboot_iscsi [0.059228s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.iPXEBootTestCase.test_prepare_instance_netboot_iscsi_bios [0.062853s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.iPXEBootTestCase.test_prepare_instance_netboot_ramdisk [0.068150s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.iPXEBootTestCase.test_prepare_instance_ramdisk [0.068282s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.iPXEBootTestCase.test_prepare_instance_ramdisk_bios [0.101066s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.iPXEBootTestCase.test_prepare_instance_ramdisk_with_kernel_arg [0.081535s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.iPXEBootTestCase.test_prepare_instance_with_fallback [0.342205s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.iPXEBootTestCase.test_prepare_ramdisk [0.074788s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.iPXEBootTestCase.test_prepare_ramdisk_cleaning [0.072454s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes [0.067689s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.iPXEBootTestCase.test_prepare_ramdisk_conflicting_boot_modes_set_unsupported [0.065322s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift [0.077524s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image [0.078387s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different [0.072225s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file [0.084857s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.iPXEBootTestCase.test_prepare_ramdisk_ipxe_without_copy [0.093495s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.iPXEBootTestCase.test_prepare_ramdisk_rescue [0.077797s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called [0.101583s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm [0.071598s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic [0.080124s] ... ok 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_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_bios [0.077539s] ... ok 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_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi [0.090756s] ... ok 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_ipxe.iPXEBootTestCase.test_prepare_ramdisk_uefi [0.067156s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.iPXEBootTestCase.test_validate_fail_missing_deploy_kernel [0.038693s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_ramdisk [0.039393s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_no_port [0.060618s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good [0.038880s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good_whole_disk_image [0.037623s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_inspection [0.058594s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/oslo_concurrency/lockutils.py:102: DeprecationWarning: Eventlet support is deprecated and will be removed. debtcollector.deprecate( {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_inspection_no_inspection_ramdisk [0.047343s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.iPXEBootTestCase.test_validate_no_image_source_for_local_boot [0.040505s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_skip_check_write_image_false [0.040349s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_with_boot_iso [0.045019s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_with_boot_iso_and_image_source [0.044096s] ... ok {0} ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue [0.034724s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.iPXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel [0.040006s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.iPXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk [0.040404s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_noop_mgmt.TestNoopManagement.test_dummy_methods [0.019502s] ... ok {0} ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_set_boot_device [0.070277s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_http_boot_not_enabled [0.065015s] ... ok {0} ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue [0.113749s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.PXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel [0.132140s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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.PXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk [0.090536s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/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_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc [0.032770s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitch [0.023803s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitchplus [0.035571s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_rackpdu [0.031650s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_aten [0.037046s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_cyberpower [0.021726s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default [0.061020s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version [0.058356s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version_and_missing_community [0.034402s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_eatonpower [0.034608s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_driver [0.069033s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_outlet [0.023063s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_version [0.020873s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_address [0.032900s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v1 [0.022034s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v2c [0.037248s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_driver [0.021313s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_outlet [0.264362s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_user [0.019728s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_raritan_pdu2 [0.019978s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_community [0.057620s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_write_community [0.030048s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_servertech_sentry3 [0.028065s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_servertech_sentry4 [0.022152s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port [0.041508s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port_default [0.028514s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v1 [0.021670s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v2c [0.023189s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3 [0.057449s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_badproto [0.026412s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.12/site-packages/futurist/_futures.py:400: DeprecationWarning: Using class 'GreenFuture' (either directly or via inheritance) is deprecated: Eventlet support is deprecated. Please migrate your code and stop using Green future. f = GreenFuture() {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_default_proto [0.034628s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_key_proto [0.031671s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_nokey [0.021279s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_short_key [0.029648s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_compat [0.020327s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_engine_id [0.050198s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_name [0.044263s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_badproto [0.049522s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_default_proto [0.036009s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_key_proto [0.044294s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_nokey [0.022689s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_short_key [0.026711s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_teltronix [0.024690s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_vertivgeist_pdu [0.028462s] ... ok {0} ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_write_community [0.027162s] ... ok {0} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_check_func_references [0.021086s] ... ok {0} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_exclusive_task_metadata [0.027613s] ... ok {0} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_ironicexception [0.033074s] ... ok {0} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_noexception [0.021823s] ... ok {0} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_nonironicexception [0.038370s] ... ok {0} ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_shared_task_metadata [0.025503s] ... ok {0} ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_apply_configuration_wrapper [0.019710s] ... ok {0} ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_factory_reset_wrapper [0.020334s] ... ok {0} ironic.tests.unit.drivers.test_base.TestBareDriver.test_class_variables [0.018082s] ... ok {0} ironic.tests.unit.drivers.test_base.TestBootInterface.test_validate_rescue_default_impl [0.029349s] ... ok {0} ironic.tests.unit.drivers.test_base.TestFirmwareInterface.test_update_with_wrapper [0.044312s] ... ok {0} ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_boot_interface [0.040849s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_console_interface [0.069702s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_deploy_interface [0.111752s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_driver_interfaces [0.051146s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_get_properties [0.040867s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_inspect_interface [0.049835s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_management_interface_get_boot_device [0.042080s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_management_interface_get_indicator_state [0.045206s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_management_interface_get_properties [0.089907s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_boot_devices [0.049024s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_indicators [0.059610s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_fail [0.050238s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_good [0.045191s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_mode_good [0.041439s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_management_interface_set_indicator_state_good [0.043096s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_management_interface_validate [0.049784s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_parse_sleep_range [0.048522s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_power_interface [0.050646s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_sleep_one [0.042586s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_sleep_range [0.045643s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_fake_hardware.FakeHardwareTestCase.test_sleep_zero [0.054441s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_ilo.Ilo5HardwareTestCase.test_default_interfaces [0.043569s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_ilo.Ilo5HardwareTestCase.test_override_raid [0.054737s] ... ok 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.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_get_properties [0.027381s] ... ok {0} ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_bad_method [0.047321s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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.MixinVendorInterfaceTestCase.test_vendor_interface_validate_valid_methods [0.051188s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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 [0.052740s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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.042561s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_duplicate [0.044975s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_capabilities_not_string [0.022253s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict [0.021719s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_incorrect_format_fail [0.024884s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_invalid_character_fail [0.241232s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_only_key_or_value_fail [0.023976s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device [0.034559s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_ensure_next_boot_device_clears_is_next_boot_persistent [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( {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_false [0.045719s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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_force_persistent_boot_true [0.041708s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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.024777s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability_returns_none [0.022153s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_mac_addresses [0.054057s] ... ok Captured stderr: ~~~~~~~~~~~~~~~~ /usr/lib/python3.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.022846s] ... ok {0} ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_unicode [0.020773s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_create [0.022480s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_bad_id_and_uuid_and_name [0.024208s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_id [0.027560s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_name [0.030707s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_uuid [0.021378s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_list [0.033125s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_payload_schemas [0.024837s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_refresh [0.025260s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save [0.020945s] ... ok {0} ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save_after_refresh [0.027757s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_list [0.019178s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_load [0.021389s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_refresh [0.019592s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register [0.023067s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_hardware_interfaces [0.022588s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group [0.021004s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_uppercased [0.021406s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_with_update [0.025736s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_update_existing_true [0.025227s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_with_invalid_group [0.021516s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_save [0.020346s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_touch [0.024213s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister [0.031600s] ... ok {0} ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister_all_hardware_interfaces [0.025736s] ... ok {0} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_create [0.035615s] ... ok {0} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_create_with_node [0.029510s] ... ok {0} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_destroy [0.039230s] ... ok {0} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_destroy_with_node [0.042487s] ... ok {0} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_get_by_node_uuid [0.028783s] ... ok {0} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_get_by_uuid [0.027281s] ... ok {0} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_not_found [0.023849s] ... ok {0} ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_refresh [0.033115s] ... ok {0} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_create [0.020761s] ... ok {0} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_destroy [0.020565s] ... ok {0} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get [0.023156s] ... ok {0} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get_by_id [0.020421s] ... ok {0} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get_by_uuid [0.033906s] ... ok {0} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list [0.029315s] ... ok {0} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list_by_node_id [0.019962s] ... ok {0} ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list_none [0.021084s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification [0.022884s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification_empty_schema [0.029774s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_invalid_status_fails [0.016995s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_make_status_invalid [0.016316s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_with_status [0.015933s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_without_status_fails [0.016928s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_has_secrets [0.023558s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_no_secrets [0.031095s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_not_affected [0.022211s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_level_too_low [0.022803s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_notifs_disabled [0.023039s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_schema_not_populated [0.022165s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema [0.018521s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_missing_required_obj_field [0.021253s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_no_object_field [0.017655s] ... ok {0} ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_nullable_field_auto_populates [0.017037s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported [0.019436s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_missing [0.020336s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported_set [0.019489s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported [0.022512s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_missing [0.021701s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_default [0.021759s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_no_remove_non_default [0.023001s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_set_remove [0.019711s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_supported_missing [0.027873s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_supported_set [0.023963s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_missing [0.020970s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_no_remove_default [0.027145s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_no_remove_non_default [0.275753s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_unsupported_set_remove [0.022193s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_missing [0.020716s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_set [0.020664s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_missing [0.021629s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_default [0.021263s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_non_default [0.021355s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_remove [0.019656s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra [0.021097s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_in_internal_info [0.020351s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_lower_version [0.038837s] ... ok {0} ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_not_in_extra [0.022840s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra [0.019911s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_in_internal_info [0.020663s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_lower_version [0.021272s] ... ok {0} ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_not_in_extra [0.055242s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_create [0.028723s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_destroy [0.025766s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get [0.033931s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_id [0.028243s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_uuid [0.021795s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list [0.024593s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_by_node_id [0.026741s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_none [0.026306s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_payload_schemas [0.021684s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_refresh [0.023675s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save [0.037605s] ... ok {0} ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save_after_refresh [0.065006s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_create [0.023911s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_destroy [0.028380s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get [0.029533s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_id [0.036276s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_uuid [0.031513s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list [0.029177s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_node_id [0.032671s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_volume_id [0.026952s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_none [0.026208s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_payload_schemas [0.024741s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_refresh [0.052227s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save [0.046806s] ... ok {0} ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save_after_refresh [0.092626s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__allowlist_mac [0.042496s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__allowlist_unknown_hosts [0.045141s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__configure_removedlist_allowlist [0.022374s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__configure_removedlist_denylist [0.019623s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__denylist_mac [0.021722s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__denylist_unknown_hosts [0.018784s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_allowlist [0.019679s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_denylist [0.024371s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_no_allowlist [0.027771s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestHelpers.test__get_no_denylist [0.018536s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_change_state [0.049354s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_deny_macs [0.032291s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_no_macs [0.025826s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_only_new_macs [0.022671s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestSync.test_removed_nodes [0.029299s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestUpdate.test_no_update [0.019309s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestUpdate.test_only_allow [0.028059s] ... ok {0} ironic.tests.unit.pxe_filter.test_dnsmasq.TestUpdate.test_only_deny [0.040262s] ... ok {0} ironic.tests.unit.pxe_filter.test_service.TestManager.test_init_and_run [0.060488s] ... ok {0} ironic.tests.unit.test_base.BlockExecuteTestCase.test_can_mock_execute [0.022744s] ... ok {0} ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute [0.025769s] ... ok {0} ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute_parent_mocked [0.017436s] ... ok ====== Totals ====== Ran: 10035 tests in 441.6331 sec. - Passed: 9990 - Skipped: 45 - Expected Fail: 0 - Unexpected Success: 0 - Failed: 0 Sum of execute time for each test: 1319.1674 sec. ============== Worker Balance ============== - Worker 0 (3248 tests) => 0:07:21.268658 - Worker 1 (2533 tests) => 0:05:46.677599 - Worker 2 (2325 tests) => 0:05:17.410889 - Worker 3 (1929 tests) => 0:03:54.648993 Test id Runtime (s) ----------------------------------------------------------------------------------------------------------------------------- ----------- ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_on 4.078 ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_allowed_state 3.335 ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_timeout 3.119 ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_timeout 3.074 ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_without_token 2.474 ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_exception_if_child_locked 2.304 ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_from_valid_states 2.271 ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_exception_if_parent_locked 2.229 ironic.tests.unit.common.test_swift.SwiftTestCase.test_get_temp_url 2.190 ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok 2.144 py312: OK (474.45 seconds) congratulations :) (474.62 seconds) + RPM_EC=0 ++ jobs -p + exit 0 Processing files: openstack-ironic-29.1.0-0.20250507225206.945f688.el10.noarch Provides: openstack-ironic = 1:29.1.0-0.20250507225206.945f688.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.20250507225206.945f688.el10.noarch warning: File not found: /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/lib/python3.12/site-packages/ironic_tests.egg_info Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.GDa9Yx + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev82 + DOCDIR=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.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.20250507225206.945f688.el10.x86_64/usr/share/doc/openstack-ironic-common + cp -pr /builddir/build/BUILD/ironic-29.1.0.dev82/README.rst /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64/usr/share/doc/openstack-ironic-common + cp -pr /builddir/build/BUILD/ironic-29.1.0.dev82/etc/ironic/policy.yaml.sample /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.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.bpZ0mD + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev82 + LICENSEDIR=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.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.20250507225206.945f688.el10.x86_64/usr/share/licenses/openstack-ironic-common + cp -pr /builddir/build/BUILD/ironic-29.1.0.dev82/LICENSE /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.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.20250507225206.945f688.el10 openstack-ironic-common = 1:29.1.0-0.20250507225206.945f688.el10 python3.12dist(ironic) = 29.1~~dev82 python3dist(ironic) = 29.1~~dev82 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.20250507225206.945f688.el10.noarch Provides: openstack-ironic-api = 1:29.1.0-0.20250507225206.945f688.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.20250507225206.945f688.el10.noarch Provides: openstack-ironic-conductor = 1:29.1.0-0.20250507225206.945f688.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.20250507225206.945f688.el10.noarch Provides: openstack-ironic-novncproxy = 1:29.1.0-0.20250507225206.945f688.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.20250507225206.945f688.el10.noarch Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.eOARcs + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev82 + LICENSEDIR=/builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.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.20250507225206.945f688.el10.x86_64/usr/share/licenses/openstack-ironic-dnsmasq-tftp-server + cp -pr /builddir/build/BUILD/ironic-29.1.0.dev82/LICENSE /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.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.20250507225206.945f688.el10 openstack-ironic-dnsmasq-tftp-server = 1:29.1.0-0.20250507225206.945f688.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.20250507225206.945f688.el10.noarch Provides: openstack-ironic-pxe-filter = 1:29.1.0-0.20250507225206.945f688.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.20250507225206.945f688.el10.noarch Provides: python-ironic-tests = 1:29.1.0-0.20250507225206.945f688.el10 python3-ironic-tests = 1:29.1.0-0.20250507225206.945f688.el10 python3.12-ironic-tests = 1:29.1.0-0.20250507225206.945f688.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.20250507225206.945f688.el10 Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64 Wrote: /builddir/build/SRPMS/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.src.rpm Wrote: /builddir/build/RPMS/openstack-ironic-dnsmasq-tftp-server-29.1.0-0.20250507225206.945f688.el10.noarch.rpm Wrote: /builddir/build/RPMS/openstack-ironic-api-29.1.0-0.20250507225206.945f688.el10.noarch.rpm Wrote: /builddir/build/RPMS/openstack-ironic-novncproxy-29.1.0-0.20250507225206.945f688.el10.noarch.rpm Wrote: /builddir/build/RPMS/openstack-ironic-pxe-filter-29.1.0-0.20250507225206.945f688.el10.noarch.rpm Wrote: /builddir/build/RPMS/openstack-ironic-conductor-29.1.0-0.20250507225206.945f688.el10.noarch.rpm Wrote: /builddir/build/RPMS/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.noarch.rpm Wrote: /builddir/build/RPMS/openstack-ironic-common-29.1.0-0.20250507225206.945f688.el10.noarch.rpm Wrote: /builddir/build/RPMS/python3-ironic-tests-29.1.0-0.20250507225206.945f688.el10.noarch.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.85N528 + umask 022 + cd /builddir/build/BUILD + cd ironic-29.1.0.dev82 + /usr/bin/rm -rf /builddir/build/BUILDROOT/openstack-ironic-29.1.0-0.20250507225206.945f688.el10.x86_64 + RPM_EC=0 ++ jobs -p + exit 0 Executing(rmbuild): /bin/sh -e /var/tmp/rpm-tmp.z2oR1T + umask 022 + cd /builddir/build/BUILD + rm -rf /builddir/build/BUILD/ironic-29.1.0.dev82-SPECPARTS + rm -rf ironic-29.1.0.dev82 ironic-29.1.0.dev82.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.20250507225206.945f688.el10.x86_64/usr/lib/python3.12/site-packages/ironic_tests.egg_info Child return code was: 0